python-3.x 如何按相同的结果集对列表进行分组

ktca8awb  于 2022-11-19  发布在  Python
关注(0)|答案(1)|浏览(158)

我有一张计量单位表,如下所示:

my_list = [['N'], ['m', '-24'], ['km', '-1'], ['s', '-1'], ['m', '2'], ['N', '-1'], ['s', '-1'], ['m', '2']]

我需要简化它(单位简化)。但我不知道如何分组项目与相同的结果。如何以往我需要得到最后的结果如下:

ans = [['m', '-20'], ['km', '-1'], ['s', '-2']]

(N.B : 'N' canceled to 'N⁻¹')

能不能请你帮我解决这条巨蟒!

dgiusagp

dgiusagp1#

下面是一个使用python字典的尝试。

measuring_unit_dict = {}

for item in my_list:
    key = item[0]
    value = '1' if len(item)==1 else item[1]
    if key not in measuring_unit_dict.keys():
        measuring_unit_dict[key] = value
    else:
        value = int(measuring_unit_dict[key]) + int(value)
        if value==0:
            measuring_unit_dict.pop(key)
        else:
            measuring_unit_dict[key]=value

print(list(measuring_unit_dict.items()))

相关问题