拆分已在lis中的字符串

2024-05-15 23:01:10 发布

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

elements = local_browsers.find_elements_by_xpath("//p[@class='small margin-top-xsmall margin-bottom-xsmall']")
elements = [obj.text.split('\n') for obj in elems]
return elems

预期输出:

['someuser','password','another']

但结果是:

[['someuser','password','another']]

Tags: marginobjbylocalanotherpasswordelementsfind
2条回答

这个案子很难一笔勾销。相反,您可以使用传统的for循环,并扩展列表,而不是在运行时构建它

elements = local_browsers.find_elements_by_xpath("//p[@class='small margin-top-xsmall margin-bottom-xsmall']")
elems = []
for obj in elements:
    elems += obj.text.split('\n')
return elems

您得到的是一个列表中的列表,因为列表理解的输出是一个列表,str.split的输出是一个列表。因此,把str.split放在一个列表中可以得到两个列表

如果可以假设第一个元素是唯一的元素,那么可以通过避免列表理解来处理:

elems[0].text.split('\n')

如果要展平结果,以便所有元素中的所有行都显示在一个列表中:

import itertools
list(itertools.chain(*(obj.text.split('\n') for obj in elems)))

相关问题 更多 >