如何解决比较具有相似的第n个元素的嵌套列表和组列表
我有一个包含多个嵌套列表的列表。我想遍历这些嵌套列表,如果嵌套列表上的第三个元素相同,那么我想将这些嵌套列表分组到一个单独的列表中。
输入:
[['10','1','SELL','toaster_1','10.00','20'],['12','8','BID','7.50'],['13','5','12.50'],['15','tv_1','250.00',['16'],['17','20.00'],['18','150.00'],['19','3','200.00'],['20'],['21','300.00']]
所需的输出:
Toaster List = [['10','20.00']]
TV List = [['15','300.00']]
然后我可以在这些列表上进行拍卖。
我无法根据拍卖品名称将它们分开。我已经花了很多时间浏览多个站点,但找不到任何答案,有人可以指导我吗?
解决方法
一个想法是将dict
作为结果
例如:
data = [['10','1','SELL','toaster_1','10.00','20'],['12','8','BID','7.50'],['13','5','12.50'],['15','tv_1','250.00',['16'],['17','20.00'],['18','150.00'],['19','3','200.00'],['20'],['21','300.00']]
result = {}
for i in data:
if len(i) > 3:
result.setdefault(i[3],[]).append(i)
print(result)
输出:
{'toaster_1': [['10','20.00']],'tv_1': [['15','300.00']]}
,
我希望我对您的问题理解正确,但是您可以使用简单的过滤列表理解:
lst = [['10','300.00']]
toaster_list = [l for l in lst if len(l) > 3 and l[3] == 'toaster_1']
tv_list = [l for l in lst if len(l) > 3 and l[3] == 'tv_1']
print(toaster_list)
print(tv_list)
打印:
[['10','20.00']]
[['15','300.00']]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。