python - 将列表解包为字典中的键——Python 3.4

标签 python dictionary

我试图对从列表索引中提取的两个值进行排序,以便字典中的键始终是一对值 (x,y),使得 x < y。

给定,例如:

a = [['0', '1', '.5'], ['3', '1', '.7'], ['18','16','.4']]

我想要 d[(16, 18)] = .4,键中的所有数字按从小到大的顺序变成整数,值作为 float 。

这是我尝试过的:

a = [['0', '1', '.5'], ['3', '1', '.7'], ['18','16','.4']]

d = {}
for i in a:
    b = sorted([int(i[0]), int(i[1])])
    d[*b] = float(i[2])

我读到有关解包列表的信息 here并认为我会试一试,但我在星号上遇到 SyntaxEror。帮助?

最佳答案

您可以使用元组作为字典的索引,但它不是参数,因此星号语法不适用:

a = [['0', '1', '.5'], ['3', '1', '.7'], ['18','16','.4']]

d = {}

for (x,y,z) in a:
    d[tuple(sorted(int(i) for i in (x, y)))] = float(z)

print(d)

关于python - 将列表解包为字典中的键——Python 3.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31910692/

相关文章:

list - 如何使用 Scheme 的 Map 函数将两个列表传递给一个函数?

python - 安装 Scikits.audiolab 时出错

python - 为什么 virtualenv 不虚拟化任意目录?

python - 如何找到整数n次根?

python - 使用 netcdf 创建向量到数组中

json - 即使存在值,Go map 也会返回 nil 值

python - 使用序列中的列表值创建字典的最干净(最Pythonic)的方法是什么?

python - python中嵌套字典的换行代码

python - Flask 看不到 pip 安装的模块

python - 列出嵌套字典的串联键