我在字典中有两个键:
一个带有值的索引。
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]
我想遍历字典和:
如果我使用以下循环:
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)
现在我只得到0列出7次。
如何使用条件语句遍历字典的值和索引,我在做什么错了?
答案 0 :(得分:1)
如果我理解正确,那么您需要这样的东西:
for i in range(len(d['inds'])):
if i in d['inds']:
print(d['vals'][i])
else:
print(0)
这将遍历所有可能的索引,如果当前索引不在d ['inds']中,则打印0,如果当前索引不在d ['inds']中,则打印该值。
答案 1 :(得分:0)
此解决方案需要功能$(document).ready(function () {
$('#table_id').DataTable({
"ajax" : "/personas.json",
...
});
});
和chain
:
defaultdict
创建一个新的列表字典:
from itertools import chain
from collections import defaultdict
使用来自G = defaultdict(list)
的数据填充它:
d
创建一系列索引:
for k,v in zip(d['inds'], d['vals']):
G[k].append(v)
#{0: [1.0], 5: [2.0, 6.0], 4: [3.0], 2: [4.0, 5.0], 1: [7.0]}
在新词典中查找每个索引。如果字典中没有索引,请使用indexes = range(min(d['inds']), max(d['inds']) + 1)
作为值。结果是可以使用[0]
展平的嵌套列表:
chain