如何解决检索列表中子列表的值
所以我有一个列表,我从将数据框转换为如下所示的列表中检索到该列表(适用于许多国家/地区):
list = [[NL,Q1,1400],[NL,Q2,1800],Q3,1900],Q4,2000],[FRA,2400],2600],...]
现在,我需要检索每个国家/地区的第三个值并将它们附加到自己的列表中,因此输出应为:
NL = [1400,1800,2000]
FRA = [2400,2600,...]
我怎样才能做到这一点?我尝试使用 for 循环语句,但后来我只得到了子列表。
解决方法
我会构造一个字典,其中对于每个键,它包含原始列表中该键的值的列表。
from collections import defaultdict
values_per_country = defaultdict(list)
for country,_,value in li:
values_per_country[country].append(value)
然后你可以得到所有的值,比如 NL,作为 values_per_country["NL"]
,如果你愿意,可以选择将它分配给一个变量。
您可以使用 itertools.groupby
只需要确保数据按照您的方式进行排序:
from itertools import groupby
from operator import itemgetter
data = [['NL','Q1',1400],['NL','Q2',1800],'Q3',1900],'Q4',2000],['FRA',2400],2600]]
output = {k: [l[2] for l in g] for k,g in groupby(data,itemgetter(0))}
{'NL': [1400,1800,1900,'FRA': [2400,2600]}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。