如何解决从 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 举报,一经查实,本站将立刻删除。