微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决从 2 个列表中减去字符串列表元素

我有以下代码,它适用于从 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: ['8 Red','6 Blue','1 Green']

我以为我理解了我的代码,但显然我没有理解,我被 int(numbers) 的 + 运算符卡住了,我不理解 zip() 函数。希望大家帮帮我。

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

解决方法

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

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

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

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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。