Python3如何提取未知元素数量的子列表中所有元素?
解决嵌套列表转一维列表的问题
嗨,我懂你的需求啦——现在得到的是嵌套的二维列表,但想要把所有单词放到一个一维列表里对吧?给你几个实用的解法:
方法一:直接修改列表推导式(最推荐)
你原来的列表推导式是把每一行分割后的结果作为子列表放进word里,只要调整循环顺序,直接把每个分割后的元素添加到一维列表中就行:
with open("a_file.txt") as file: word = [item for line in file for item in line.strip().split('\t')] print(word)
这里用with语句是更稳妥的实践,它会自动帮你关闭文件,避免出现资源泄漏的问题。
方法二:扁平化已有的嵌套列表
如果已经生成了那个嵌套的word列表,也可以用下面的方式快速扁平化:
小数据量场景
用sum()函数直接合并子列表:
flat_word = sum(word, [])
不过这个方法在数据量大的时候效率不高,因为每次合并都会创建新列表,适合处理少量数据。
大数据量场景
用itertools.chain来高效拼接子列表,性能表现更好:
import itertools flat_word = list(itertools.chain.from_iterable(word))
这样处理后,你就能得到期望的一维列表['a','b','c',.......]啦!
内容的提问来源于stack exchange,提问作者Aimee
相关产品推荐
相关产品推荐

