繁体   English   中英

从 2 个列表中减去字符串列表元素

[英]Subtract String List Elements from 2 lists

我有以下代码,它适用于从 2 个列表中添加字符串元素:

list_1 = ['2 Red', '8 Blue', '4 Green']
list_2 = ['10 Red', '2 Blue', '3 Green']

list_1.extend(list_2)

results = {}

for elem in list_1:
    number, color = elem.split()
    results[color] = results.get(color, 0) + int(number)

result = [f"{i} {p}" for i, p in zip(results.values(), results.keys())]

Output: ['12 Red', '10 Blue', '7 Green']

现在,我想对相同的元素做基本的减法,即 output 如下:

Output: ['8 Red', '6 Blue', '1 Green']

我以为我理解了我的代码,但显然我没有,我被 int(numbers) 的 + 运算符卡住了,我不理解 zip() function。 我希望你们能帮助我。

保持健康,度过美好的一天!

我们使用int进行加法,因为要添加的数据是split操作后的字符串。

其次,我们使用zip方法在一个循环中将字典元素一起迭代。

此外,您可以使用abs function 来获得问题第二部分的绝对值:

list_1 = ['2 Red', '8 Blue', '4 Green']
list_2 = ['10 Red', '2 Blue', '3 Green']
list_1.extend(list_2)

results = {}

for elem in list_1:
    number, color = elem.split()
    results[color] = abs(int(number) - results.get(color, 0) )

result = [f"{i} {p}" for i, p in zip(results.values(), results.keys())]

print(result)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM