我有一个元组列表,称为list_out。我想访问列表中第二列的值(我想将acsses设置为“ 313”,“ 321”和“ 365”)。 list_out正在:
list_out = [('2240', '313', {'Sign': 1}),
('2240', '321', {'Sign': 1}),
('2240', '365', {'Sign': -1})]
我用过:
print (list_out[0])
退出:
('2240', '313', {'Sign': 1})
然后我用了:
print (list_out[0][1])
退出:
313
以上代码,返回列表中第一行中第二列的值(仅'313')。我想访问所有行中第二列的值。 请为我提出解决此问题的方法。
答案 0 :(得分:3)
尝试一下:
print(list(zip(*list_out))[1])
输出:
('313', '321', '365')
OR:
print([i[1] for i in list_out])
输出:
['313', '321', '365']
答案 1 :(得分:2)
list_out = [('2240', '313', {'Sign': 1}), ('2240', '321', {'Sign': 1}),
('2240', '365', {'Sign': -1})]
column2=[j for _,j,_ in list_out]
输出
['313', '321', '365']
答案 2 :(得分:1)
使用operator.itemgetter
:
from operator import itemgetter
res = list(map(itemgetter(1), list_out))
# ['313', '321', '365']
或通过序列拆包:
_, res, _ = zip(*list_out)
print(res)
# ('313', '321', '365')
如果您不想拆开不需要的列:
from itertools import islice
res = next(islice(zip(*L), 1, None))