我需要将一组变量(BeautifulSoup的结果集)转换为字符串。是否有一种优雅的方式可以同时对所有这些进行而不是逐个进行?我在想这样的事情 -
for name in [company_name, company_address, company_logo, company_cat, company_lat, company_phone, company_fax]:
name = str(name)
我也想用re.sub -
做类似的事情for name in [company_name, company_address, company_logo, company_cat, company_lat, company_phone, company_fax]:
re.sub('<[^<]+?>', '', name)
由于
答案 0 :(得分:1)
for name in [company_name, company_address, company_logo, company_cat, company_lat, company_phone, company_fax]:
name = str(name)
这不起作用,因为你正在修改for循环中的列表,但你可以使用列表推导,这是一个单行:
list_as_strings = [str(name) for name in [company_name, company_address, company_logo, company_cat, company_lat, company_phone, company_fax]]
演示
>>> a = [1, 2, 3, 4]
>>> for i in a:
... i = str(i)
...
>>> a
[1, 2, 3, 4]
>>> b = [str(i) for i in a]
>>> b
['1', '2', '3', '4']
答案 1 :(得分:0)
列表理解应该更快,但这个解决方案对您来说更具可读性。
list1 = [company_name, company_address, company_logo]
list2 = []
for name in list1:
list2.append( str(name) )
company_name, company_address, company_logo = list2
现在你在以前的变量中都有字符串。