python - 从 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)
推荐阅读
- qt - 使用 QML 滚动网格背景
- visual-studio - 如何构建一个 Visual Studio 项目代码库以部署到具有不同配置转换的多个网站?
- tsql - 查找 3 个表之间的缺失值
- c - 错误:在 macOS 上“未分配重新分配的指针”,但在尝试重新分配两次时在 Windows 上有效
- regex - 用于解析查询输出的正则表达式
- mirth - 跟踪配置更改及其实际的全局状态
- laravel - 我应该在关系中使用 index() 吗?
- java - 没有 LDAP 密码的 Spring 安全性
- javascript - 未在 Angular (6) 组件中获取在 textarea 中创建的标记
- azure-devops - VSTS:将部署失败发送到分发列表?