我有一个像这样的清单清单`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]]我想获得具有相同第二索引的列表。我尝试了这段代码,但是当我只需要3个列表时我得到了9个列表。
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]
问题来源:stackoverflow
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工作,必须对数据进行排序。
根据您的用例,可能不需要迭代器的列表实例化。添加了它以查看正确的输出,而不是<itertools._grouper ...>
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。