python - 修改包含元组的字典
问题描述
我正在尝试转换:这个 Diciotonary :
dictio = {(3, 3): 'blue'}
至
dictio = {33: 'blue'}
我修改 dict 值没有问题,但元组键是问题所在。
看到无法修改元组,我该怎么办?
解决方案
您可以执行以下操作:
dictio = {int(''.join(map(str, k))): v for k,v in dictio.items()}
回报:
{33: 'blue'}
这也适用于以下示例:
dictio = {(3, 3): 'blue', (4, 2): 'red', (6, 2, 5): 'green'}
回报:
{33: 'blue', 42: 'red', 625: 'green'}
请注意,如果您有类似的情况,这将导致键冲突{(4, 31): 'red', (43, 1): 'green'}
,并且您的结果将包括最后一个键值对,在这种情况下{431: 'green'}
。
在这种情况下,我会改为使用以下内容:
dictio = {(3, 3): 'blue', (4, 2): 'yellow', (4, 31): 'red', (43, 1): 'green'}
new_dict = {}
for k,v in dictio.items():
key = int(''.join(map(str, k)))
if key in new_dict:
new_dict[key].append(v)
else:
new_dict[key] = [v]
回报:
{33: ['blue'], 42: ['yellow'], 431: ['red', 'green']}
推荐阅读
- html - 我们可以在另一个 div 中使用与图像垂直对齐吗
- c# - MimeKit howto base64 编码附件文件名
- angular - Angular 生成大型反应形式的最佳方法是什么?
- angular - 如何从 ts 中的对象中获取值?
- python - 有没有办法为已经存在的 Windows 应用程序(没有 CLI)构建命令行界面?
- matlab-app-designer - 如何在应用程序(mlapp)上实现模态弹出窗口?
- python - Dask 在连接大熊猫数据帧时效率不高,并给出内存错误
- r - 在R中的2个特定字符串之间提取未知数量的字符串
- ansible - Ansible 查找模块给出错误“似乎不是有效目录或无法访问”绝对路径
- python - 无法在 python 中解码 AWS Session Manager websocket 输出