Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何提取具有相同元素值的列表?_Python 3.x - Fatal编程技术网

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工作,必须对数据进行排序

根据您的用例,可能不需要迭代器的列表实例化。添加它以查看正确的输出,而不是