如何从嵌套列表的元组中移除第二个值并保留原有子列表结构?
解决方法
直接使用嵌套列表推导式处理你现有的tuples变量即可,外层遍历每个子列表,内层遍历子列表内的元组提取第一个元素,完全保留原有嵌套结构:
result = [[item[0] for item in sub_list] for sub_list in tuples]
你之前的单层循环会把所有子列表的元组都合并到同一个列表里,才会导致结构被破坏,嵌套推导式刚好匹配原有的两层列表结构,不会出现打平的问题。
如果想直接整合到原有代码流程里,也可以直接在最后一步生成的时候处理:
tokenz = [word_tokenize(i) for i in data_file] tokenz = [l[:2] for l in tokenz] tuples = [tuple(x) for x in tokenz] tuples = [list(g) for k, g in groupby(tuples, key=bool) if k] # 新增一步处理,直接得到目标结果 result = [[t[0] for t in sub] for sub in tuples]
运行后即可得到你期望的输出格式。
内容的提问来源于stack exchange,提问作者Blueboots
相关产品推荐
相关产品推荐

