import re
def strip_tags(value):
"Return the given HTML with all tags stripped."
return re.sub(r'<[^>]*?>', '', value)
我有這個功能剝離HTML標籤,但它似乎只接受單一的價值,我需要做什麼改變,如果我想通過多(不固定)價值一次?傳遞多個值的函數調用(Python)的
謝謝
import re
def strip_tags(value):
"Return the given HTML with all tags stripped."
return re.sub(r'<[^>]*?>', '', value)
我有這個功能剝離HTML標籤,但它似乎只接受單一的價值,我需要做什麼改變,如果我想通過多(不固定)價值一次?傳遞多個值的函數調用(Python)的
謝謝
python提供了一種使用任意長度的參數列表:
def myfunc(*args):
for argument in args:
print "myfunc was given", argument
如果你把*args
在函數定義,傳遞給函數的所有值都可以作爲一個名爲args
元組。請注意,您也可以把其他參數*args
之前, 像
def my_other_func(name, *args):
所以第一個參數將作爲name
,其餘的將在元組args
。
調用此參數args
是慣例,但不是必需的。只要前面有一個星號,就可以隨心所欲地稱呼它。
您可以使用循環。
for value in values:
strip_tags(value)
你可以在value
通過作爲一個字符串數組,然後返回清潔值的數組。
import re
def strip_tags(values):
return map(lambda i: re.sub(r'<[^>]*?>', '', i), values)
這是一個寫在您提供的函數上的函數。這將採取值的列表並返回相應的處理列表:
import re
def strip_tags_list(values):
return map(strip_tags, values)
注意:這將工作在python 2.6和earleir版本。在python 3.0上,你必須顯式地使用list()將map()的結果轉換爲列表。
如果值是相互獨立的,那麼不用修改strip_tags的,只是改變你怎麼稱呼它:
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
如果值是相關的,如被同一文件的相鄰塊,然後使用用strip_tags之前將它們連接起來:
values = [some_value, another_value]
result = strip_tags("".join(values))
# note result is single string
沒有說明如何使用不僅*也**(字典)傳遞參數,這裏好(和非常快)教程:HTTP://www.technovelty .ORG /代碼/蟒/ asterisk.html – Roman 2010-01-17 17:51:59