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 elemsexpected_output:
['someuser','password','another']但得到的结果如下:
[['someuser','password','another']]发布于 2019-07-19 03:50:02
您将在列表中获得一个列表,因为列表理解的输出是一个列表,而str.split的输出是一个列表。因此,将str.split放在列表理解中可以得到两个列表。
如果您可以假设第一个元素是唯一的元素,则可以通过避免列表理解来处理此问题:
elems[0].text.split('\n')如果要展平结果,以便所有元素中的所有行都显示在一个列表中:
import itertools
list(itertools.chain(*(obj.text.split('\n') for obj in elems)))发布于 2019-07-19 03:49:43
这种情况很难在列表理解中完成。相反,您可以使用传统的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 elemshttps://stackoverflow.com/questions/57101548
复制相似问题