检索列表中子列表的值
Retrieving values of sublists within a list
所以我有一个列表,我通过将数据框转换为如下所示的列表(它适用于许多国家/地区):
list = [[NL, Q1, 1400], [NL, Q2, 1800], [NL, Q3, 1900], [NL, Q4, 2000], [FRA, Q1, 2400],[FRA, Q1, 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], ['NL', 'Q3', 1900], ['NL', 'Q4', 2000], ['FRA', 'Q1', 2400],['FRA', 'Q1', 2600]]
output = {k: [l[2] for l in g] for k, g in groupby(data, itemgetter(0))}
{'NL': [1400, 1800, 1900, 2000], 'FRA': [2400, 2600]}
所以我有一个列表,我通过将数据框转换为如下所示的列表(它适用于许多国家/地区):
list = [[NL, Q1, 1400], [NL, Q2, 1800], [NL, Q3, 1900], [NL, Q4, 2000], [FRA, Q1, 2400],[FRA, Q1, 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], ['NL', 'Q3', 1900], ['NL', 'Q4', 2000], ['FRA', 'Q1', 2400],['FRA', 'Q1', 2600]]
output = {k: [l[2] for l in g] for k, g in groupby(data, itemgetter(0))}
{'NL': [1400, 1800, 1900, 2000], 'FRA': [2400, 2600]}