python - 截断字典列表值

标签 python list dictionary truncate

我正在尝试在字典中查找匹配值的键。但要获得任何类型的有效匹配,我需要截断列表中的值。

我想截断小数点(例如“2.21”到“2.2”)。

dict1 = {'red':[1.98,2.95,3.83],'blue':[2.21,3.23,4.2333],'orange':[3.14,4.1,5.22]}

dict2 = {'green':[3.11,4.12,5.2],'yellow':[2.2,3.2,4.2],'red':[5,2,6]}

matches = []
for key1 in dict1:
    for key2 in dict2:
        if dict1[key1] == dict2[key2]:
            matches.append((key1, key2))

print(matches)

我正在尝试让 "green""orange" 应该匹配,以及 "blue"“黄色”。但我不确定是否需要先解析每个值列表,进行更改,然后继续。如果我可以对比较本身进行更改,那将是理想的。

最佳答案

d = {'green': [3.11, 4.12, 5.2]}

>>> map(int, d['green'])
[3, 4, 5]

比较之前需要将列表项映射为整数

for key2 in dict2:
    if map(int, dict1[key1]) == map(int, dict2[key2]):
        matches.append((key1, key2))

我假设你想四舍五入。如果您想四舍五入到最接近的整数,请使用 round 而不是 int

关于python - 截断字典列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38077634/

相关文章:

python - Debian Linux 中的 Pyinstaller 安装

javascript - 使用flask将所有输入框中的输入提取到列表中

c# - FxCop 说我应该返回一个通用列表接口(interface)而不是字节数组。我是不是该?

Python 安全字典导航,正确的方法

python - 在python中合并字典值列表

python - 将数据写入 CSV 格式文件

python - 运行多个 uwsgi python 版本

c++ - 循环列表最简洁/有效的表达式?

python - Python 中 XML 文件的值比较

c++ - map 和多 map : memory usage/management differences?