我似乎无法在循环中抵消迭代器

时间:2019-06-13 15:18:31

标签: python loops iterator offset

我正在尝试遍历偏移量为[i + 1]的迭代器。

我已经列举了我的字典。现在,我想使用偏移第二个数据帧的函数来访问matchesList

chat.component.html

但是我得到了这个错误:

dfc

1 个答案:

答案 0 :(得分:0)

您访问不存在的密钥,这就是错误的原因。您可以解决此问题:

mydict = {1: 6, 2: 4, 3: 10, 4: 7, 5: 3}
# there is no sense in creating dfc - if you need a dublicate, use dfc = dict(mydict)
sorted_keys = sorted(mydict) # sort keys - dicts are unordered / insert ordered from 3.7 on

for k in sorted_keys: 
    print(f"index: {k}, key: {k}, value: {mydict[k]}")

result = {}
for i in sorted_keys:
    result[i] = mydict[i] * mydict.get(i+1,1)  # avoid key error, if not existst, mult by 1

for k in sorted_keys: 
    print(f"index: {k}, key: {k}, value: {result[k]}")

输出:

index: 1, key: 1, value: 6
index: 2, key: 2, value: 4
index: 3, key: 3, value: 10
index: 4, key: 4, value: 7
index: 5, key: 5, value: 3

index: 1, key: 1, value: 24
index: 2, key: 2, value: 40
index: 3, key: 3, value: 70
index: 4, key: 4, value: 21
index: 5, key: 5, value: 3

使用dict.get(key,default)可以尝试获取值,如果不存在,则可以使用默认值1。 1 *不会改变结果。

请参见Why dict.get(key) instead of dict[key]?