我想要一个包含所有第二个元素的数组,其中第一个元素等于' tuple1elem1'。我怎样才能有效地做到这一点?我有大约500个元组。
元组:
(('tuple1elem1', 'tuple1elem2'), ('tuple2elem1', 'tuple2elem2'), ('tuple3elem1', 'tuple3elem2'))
我想拥有什么:
array = ['tuple1elem2']
答案 0 :(得分:4)
将列表推导与过滤器结合使用。
myList = [...]
output = [x[1] for x in myList if x[0] == 'tuple1elem1']
答案 1 :(得分:1)
您从元组中访问元素的方式与列表元素的方式大致相同。你可以解压缩它们:
>>> bigtuple = (('tuple1elem1', 'tuple1elem2'), ('tuple2elem1', 'tuple2elem2'), ('tuple3elem1', 'tuple3elem2'))
>>> array = [ele2 for ele1, ele2 in bigtuple if ele1 == "tuple1elem1"]
['tuple1elem2']
答案 2 :(得分:0)
有一种快速的方法来获取和添加元组列表中的第二个元素:
import numpy as np
tuples_list = [(0, 10), (0, 20), (0, 30)]
fast_tuples_add = np.array(tuples_list) + (0, 9) # fast tuples add
fast_tuples_add
array([[ 0, 19],[ 0, 29], [ 0, 39]])
希望这会有所帮助