import re
def strip_tags(value):
"Return the given HTML with all tags stripped."
return re.sub(r'<[^>]*?>', '', value)
我有这个功能来剥离HTML标签,但它似乎只接受单个值,如果我想一次传递多个(不是固定的)值,我需要更改什么?
由于
答案 0 :(得分:8)
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
是常规,但不是必需的。只要前面有一个星号,你可以随意调用它。
答案 1 :(得分:2)
你能使用一个循环。
for value in values:
strip_tags(value)
答案 2 :(得分:1)
您可以将value
作为字符串数组传入,然后返回已清理值的数组。
答案 3 :(得分:1)
import re
def strip_tags(values):
return map(lambda i: re.sub(r'<[^>]*?>', '', i), values)
答案 4 :(得分:1)
如果值彼此独立,则不要修改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
答案 5 :(得分:0)
这是一个用你提供的函数编写的函数。这将获取值列表并返回相应的已处理列表:
import re
def strip_tags_list(values):
return map(strip_tags, values)
注意:这适用于python 2.6和earleir版本。在python 3.0上,你必须使用list()显式地将map()的结果转换为list。