更改对象组的类型

时间:2014-07-05 00:15:32

标签: python variables python-3.3

我需要将一组变量(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)

由于

2 个答案:

答案 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

现在你在以前的变量中都有字符串。