【发布时间】:2019-01-30 08:00:00
【问题描述】:
我有什么:
我在字典中有两个键:
- 一个有值和
-
一个与值的索引。
d = {} d['inds'] = [0, 5, 4, 2, 2, 5, 1] d['vals'] = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]
我想做什么:
我想遍历字典并且:
- 如果下一次迭代索引=上一次迭代索引+1,则列出对应的值
- 如果下一次迭代索引不 = 上一次迭代索引 +1,则打印 0 并继续。所以基本上只是在缺少索引时填写 0
我尝试过的
如果我使用以下循环:
for i in d['inds']:
for v in d['vals']:
for x in range(0, i):
if i == x+1:
print(v)
break
else:
print(0)
我得到了 6 次值列表。
所以我尝试交换 i 和 x:
for i in d['inds']:
for v in d['vals']:
for x in range(0, i):
if x == i+1:
print(v)
break
else:
print(0)
现在我只列出了 7 次 0。
TL;DR
如何使用条件语句遍历字典的值和索引,我做错了什么?
【问题讨论】:
-
我只看到一本字典,
d。另一个是什么? -
DYZ 是对的,您的字典中有两个“键”,但您只显示一个字典。
-
对不起,是的,只有一本字典,但有两个键!
-
你能再试着问你的问题吗?我还不明白你想做什么。
-
有两个键。希望从键创建一个向量,当下一个数字索引丢失时填充零值。希望得到 1.0、7.0、4.0、5.0、0.0、3.0、2.0、6.0 的最终结果,因为 0 的值为 1,1 的值为 7,2s 的值为 4 和 5,缺少 3,所以 0、4s 的值为 3 , 5s 值为 2 和 6
标签: python-3.x dictionary for-loop if-statement