从三重嵌套列表中获取最里面的元素 Python
Get inner-most elements from triple nested list Python
我有清单
players = [[['QB1',7000,20],['RB1',4500,12],['RB2',3800,11]],
[['QB1',7000,20],['RB2',3800,11],['RB1',4500,12]]]
如何获取每个最内层列表的第一个元素('QB1'、'RB1' 和 'RB2' 来自第一个 "secondary," 列表)检查它们是否与另一个二级列表中的标签相同但无序(在这种情况下,它们是因为两个二级列表都包含 'QB1'、'RB1' 和 'RB2')?
编辑:
我想要的是[['QB1','RB1','RB2'],['QB1','RB2','RB1']]
。为了我的目的,我想通过某种方式来识别这些是相同的列表。
做:
print(list(zip(players))[0])
或者:
print([i[0] for i in players])
你可以这样做:
output = [[i[0] for i in a] for a in players]
output
会是这样的:
[['QB1', 'RB1', 'RB2'], ['QB1', 'RB2', 'RB1']]
你也可以试试这个:
from operator import itemgetter
[list(map(itemgetter(0), player)) for player in players]
您可以使用递归搜索来获取每个列表或整个列表的第一个元素
players = [[['QB1',7000,20],['RB1',4500,12],['RB2',3800,11]],[['QB1',7000,20],['RB2',3800,11],['RB1',4500,12]]]
def retrive_first(lst):
for item in lst:
if type(item) == list:
retrive_first(item)
else:
print "returning ---> ", lst[0]
return lst[0]
print retrive_first(players)
我有清单
players = [[['QB1',7000,20],['RB1',4500,12],['RB2',3800,11]],
[['QB1',7000,20],['RB2',3800,11],['RB1',4500,12]]]
如何获取每个最内层列表的第一个元素('QB1'、'RB1' 和 'RB2' 来自第一个 "secondary," 列表)检查它们是否与另一个二级列表中的标签相同但无序(在这种情况下,它们是因为两个二级列表都包含 'QB1'、'RB1' 和 'RB2')?
编辑:
我想要的是[['QB1','RB1','RB2'],['QB1','RB2','RB1']]
。为了我的目的,我想通过某种方式来识别这些是相同的列表。
做:
print(list(zip(players))[0])
或者:
print([i[0] for i in players])
你可以这样做:
output = [[i[0] for i in a] for a in players]
output
会是这样的:
[['QB1', 'RB1', 'RB2'], ['QB1', 'RB2', 'RB1']]
你也可以试试这个:
from operator import itemgetter
[list(map(itemgetter(0), player)) for player in players]
您可以使用递归搜索来获取每个列表或整个列表的第一个元素
players = [[['QB1',7000,20],['RB1',4500,12],['RB2',3800,11]],[['QB1',7000,20],['RB2',3800,11],['RB1',4500,12]]]
def retrive_first(lst):
for item in lst:
if type(item) == list:
retrive_first(item)
else:
print "returning ---> ", lst[0]
return lst[0]
print retrive_first(players)