更改对象组的类型

2024-05-16 01:15:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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

谢谢


Tags: 方法字符串nameinreforaddressphone
2条回答
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']

列表理解应该更快,但是这个解决方案对你来说更具可读性

list1 = [company_name, company_address, company_logo]

list2 = []

for name in list1:
    list2.append( str(name) )

company_name, company_address, company_logo = list2

现在在前面的变量中有了字符串

相关问题 更多 >