python - 如何在保持子列表结构完整的同时从元组列表中去除第二个值?
问题描述
我在列表列表中有一个元组列表。我想从每个元组中去除第二个值,同时保持子列表结构完整。我尝试了一个 for 循环,在其中我提取了第一个值,但这会将子列表的结构折叠成每个单词的单个列表。
我的代码是:
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]
tuples
现在我的输出是:
[('EU', 'NNP'),
('rejects', 'VBZ'),
('German', 'JJ'),
('call', 'NN'),
('to', 'TO'),
('boycott', 'VB'),
('British', 'JJ'),
('lamb', 'NN'),
('.', '.')],
[('Peter', 'NNP'), ('Blackburn', 'NNP')],
[('BRUSSELS', 'NNP'), ('1996-08-22', 'CD')],
我试图让它看起来像这样:
['EU', 'rejects', 'German', 'call', 'to', 'boycott', 'British', 'lamb', '.'],
['Peter', 'Blackburn'],
['BRUSSELS', '1996-08-22']
解决方案
使用嵌套列表推导
tuples = [
[('EU', 'NNP'),
('rejects', 'VBZ'),
('German', 'JJ'),
('call', 'NN'),
('to', 'TO'),
('boycott', 'VB'),
('British', 'JJ'),
('lamb', 'NN'),
('.', '.')],
[('Peter', 'NNP'), ('Blackburn', 'NNP')],
[('BRUSSELS', 'NNP'), ('1996-08-22', 'CD')]
]
result = [[tup[0] for tup in list_of_tuples] for list_of_tuples in tuples]
推荐阅读
- wso2 - WSO2 身份服务器 - 不断收到“内部错误 - 服务器连接终止”
- javascript - 在鼠标悬停时在 svg 中添加文本不起作用 d3.js
- java - 如何使用导航组件在活动中并排显示 2 个片段
- terraform - 在另一个模块或资源中使用输出
- swiftui - 如何在 SwiftUI 中的数组上使用 UserDefault
- firebase - 是否应该为 iOS Flutter 应用同时打开所有 Firebase 通知?
- node.js - 一个 nodejs/express 应用程序只能在 localhost 上运行,但不使用 IP 地址,另一个 nodejs/express 应用程序可以正常工作吗?
- amazon-ec2 - 如何使用 saltstack 获取现有的 ec2 实例卷大小
- java - Tomcat:执行期间出错:java.lang.NoClassDefFoundError: javax/servlet/GenericFilter
- android - react-native ignite bowser 如何导航到另一个页面?