python - 列表理解从每个元组中获取多个值
问题描述
假设我有一个这样的元组列表:
myList = [(1,2,3), ('a','b','c'), (4,'j',9)]
我想要做的是创建一个列表,其中包含每个元组的第二项和第三项(但不是第一项)。
[2, 3, 'b', 'c', 'j', 9]
显然我可以这样做:
result = []
for i in myList:
result.append(i[1])
result.append(i[2])
但是,我想知道如何通过列表理解在一行中做到这一点。
我试图做的一件事是:
[*(i[1],i[2]) for i in myList]
然而这并没有奏效,因为 Python 不喜欢在列表推导中解包。
解决方案
真的可以通过列表理解来做到这一点:
[item for subTuple in myList for item in subTuple[1:]]
理解:
for subTuple in myList: # Every tuple in the list
for item in subTuple[1:]: # Every item starting from index 1
item # the item
推荐阅读
- java - classcastexception 越来越像整数无法转换 java.lang.string
- ios - iOS WKWebview:始终允许相机权限
- python - 在 Python 脚本中输入逗号分隔值
- java - flutter 中的贬值错误?C:\flutter\.pub-cache\hosted\pub.dartlang.org\firebase_auth-0.20.0+1\android\src\main\java\io\flutter\plugins
- javascript - 删除输入行后如何在javascript中计算价格?
- python - 使用索引 Pandas 替换选定的单元格
- reactjs - 只点击不透明部分 svg img
- yii2 - Yii2联合查询在部署时在服务器中不起作用,但在本地工作正常
- keras - 日志[“准确度”]的值与历元准确度之间的差异
- r - R:如何根据 data.frame 中的某些变量将二进制结果制成表格