Python 3.x 如何提取具有相同元素值的列表?
我有一个这样的列表Python 3.x 如何提取具有相同元素值的列表?,python-3.x,Python 3.x,我有一个这样的列表data=[[“date1”,“a”,“14,15],“date1”,“b”,“14,15],“date1”,“c”,“14,15],“date2”,“a”,“14,15],“date2”,“b”,“14,15],“date2”,“c”,“14,15],“date3”,“b”,“14,15],“date3”,“c”,“14,15],我想得到第二个索引相同的列表。我尝试了这个代码,但我得到了9个列表,而我只需要3个列表 data=[["date1","a",14,15],
data=[[“date1”,“a”,“14,15],“date1”,“b”,“14,15],“date1”,“c”,“14,15],“date2”,“a”,“14,15],“date2”,“b”,“14,15],“date2”,“c”,“14,15],“date3”,“b”,“14,15],“date3”,“c”,“14,15],
我想得到第二个索引相同的列表。我尝试了这个代码,但我得到了9个列表,而我只需要3个列表
data=[["date1","a",14,15],["date1","b",14,15],["date1","c",14,15],["date2","a",14,15],["date2","b",14,15],["date2","c",14,15],["date3","a",14,15],["date3","b",14,15],["date3","c",14,15]]
for i in data:
a=[]
for j in data:
if (i[1]==j[1]):
a.append(j)
print(a)
我希望得到[“date1”,“a”,14,15],“date2”,“a”,14,15],“date3”,“a”,14,15]
[“date1”,“b”,14,15],“date2”,“b”,14,15],“date3”,“b”,14,15]
[“date1”,“c”,14,15],“date2”,“c”,14,15],“date3”,“c”,14,15]
data=[["date1","a",14,15],["date1","b",14,15],["date1","c",14,15],["date2","a",14,15],["date2","b",14,15],["date2","c",14,15],["date3","a",14,15],["date3","b",14,15],["date3","c",14,15]]
from itertools import groupby
from operator import itemgetter
print(
[list(v) for k,v in groupby(sorted(data, key=itemgetter(1)), key=itemgetter(1))]
)
为了使groupby工作,必须对数据进行排序
根据您的用例,可能不需要迭代器的列表实例化。添加它以查看正确的输出,而不是