首页 > 解决方案 > 为什么`for k in [*dictionary]`分配k?

问题描述

x, *y, z = range(1,10)
k = ['x', 'y', 'z']
d = {k:v for k, v in zip(k, (x, y, z))}
for k in [*d]:
    print(f'{k}: {d[k]}')
print(k)
>>> z

以下工作正常,k但它会自动分配a我不想要的。

x, *y, z = range(1,10)
k = ['x', 'y', 'z']
d = {k:v for k, v in zip(k, (x, y, z))}
for a in [*d]:
    print(f'{a}: {d[a]}')
print(k)
>>> ['x', 'y', 'z']
print(a)
>>> z

问题:

  1. 为什么 k 是'z'而不是['x', 'y', 'z']
  2. 做什么for a in [*d]

标签: python-3.x

解决方案


推荐阅读