2010-01-17 3 views
1
import re 
def strip_tags(value): 
    "Return the given HTML with all tags stripped." 
    return re.sub(r'<[^>]*?>', '', value) 

이 함수는 HTML 태그를 제거하지만 단일 값만 받아들이는 것처럼 보입니다. 다중 값 (고정 값이 아님)을 전달하려면 무엇을 변경해야합니까? 한 번에 가치?함수 호출에 여러 값 전달 (파이썬)

감사합니다.

답변

8

파이썬은 임의의 길이의 인수 목록을 사용하는 방법을 제공합니다

def myfunc(*args): 
    for argument in args: 
     print "myfunc was given", argument 

당신이 당신의 함수 정의에 *args을 넣으면

는 함수에 전달 된 모든 값은 args라는 튜플로 사용할 수 있습니다. 당신은 또한 그래서 첫 번째 인수가 name로 사용할 수 있습니다

def my_other_func(name, *args): 

처럼 *args 전에 를 추가 인수를 넣을 수 있습니다, 나머지는 튜플 args에있을 것입니다.

이 매개 변수를 args이라고 부르는 것이 일반적이지만 꼭 필요한 것은 아닙니다. 그것 앞에 별표가있는 한, 당신이 원하는대로 그것을 부를 수 있습니다. 이러한 동일한 파일의 인접한 조각 것으로, 값이 관련된 경우

values = [some_value, another_value] 
values = [strip_tags(v) for v in values] 
# values[0] is now the strip_tags version of the old values[0] 
# similar to values[0] = strip_tags(values[0]), except for every item 

: 값이 서로 독립적 인 경우

+0

.org/code/python/asterisk.html – Roman

2

루프를 사용할 수 있습니까?

for value in values: 
    strip_tags(value) 
1

당신은 문자열의 배열로 value을 전달하고 청소 값의 배열을 반환 할 수있다.

1
import re 
def strip_tags(values): 
    return map(lambda i: re.sub(r'<[^>]*?>', '', i), values) 
0

여기에 제공 한 기능에 대해 작성된 기능입니다. 이것은 값의리스트를 취해 대응하는 처리리스트를 돌려줍니다.

import re 
def strip_tags_list(values): 
    return map(strip_tags, values) 

주 : 이것은 파이썬 2.6 및 earleir 버전에서 작동합니다. python 3.0에서는 map()의 결과를 list()를 사용하여 명시 적으로 변환해야합니다.

1

, 다음, 당신이 그것을 호출하는 방법을 변경, strip_tags를 수정하지 마십시오 다음 사용 strip_tags 전에을 연결 : HTTP : //www.technovelty 여기에 인수를 전달하는뿐만 아니라 *뿐만 아니라 ** (사전)을 사용하는 방법을 보여주는 좋은 (매우 빠르게) 튜토리얼이 있습니다

values = [some_value, another_value] 
result = strip_tags("".join(values)) 
# note result is single string 
관련 문제