我很想知道是否可以直接将一组值附加到字典中,而不首先将它们存储在列表中,就像我在下面的代码中所做的那样。我的想法是省略tempD,tempR和tempA变量。
getD = {}
getR = {}
getA = {}
count = -1
for j in range(0, 180, 45):
count += 1
getD[count] = {}
getR[count] = {}
getA[count] = {}
tempD = []
tempR = []
tempA = []
for k in range(len(lA)):
if (j <= lA[k] < j + step):
tempD.append(lD[k])
tempR.append(lR[k])
tempA.append(lA[k])
getD[count] = tempD
getR[count] = tempR
getA[count] = tempA
答案 0 :(得分:1)
您可以使用defaultdict
,以便getD[count]
作为列表开始:
from collections import defaultdict
getD = defaultdict(list)
getR = defaultdict(list)
getA = defaultdict(list)
count = -1
for j in range(0, 180, 45):
count += 1
for k in range(len(lA)):
if (j <= lA[k] < j + step):
getD[count].append(lD[k])
getR[count].append(lR[k])
getA[count].append(lA[k])
答案 1 :(得分:0)
即使这不是你的问题:在你的情况下,使用列表推导可能是有益的:
getD = {}
getR = {}
getA = {}
for count, j in enumerate(range(0, 180, 45)):
aBound = j + step
getD[count] = [lD[k] for k, a in enumerate(lA) if j <= lD[k] and a < aBound]
getR[count] = [lR[k] for k, a in enumerate(lA) if j <= lR[k] and a < aBound]
getA[count] = [a for a in lA if j <= a and a < aBound]
这也可以让你摆脱临时数组,也可以提高效率。