所以基本上我有一个名为numList的数字列表。
防爆。 [11,54,22,42,5,16,79,18,39]
我还有一本列表字典词典。
防爆。 {0:[10,20,0],1:[15,20,0],2:[20,30,0], 3:[30,90,0]}
。
我的目标是遍历numList中的每个数字,并遍历字典中的每个键,并检查numList中的每个数字是否在字典中每个键的前两个值之间。如果数字在每个键的前两个值之间,那么我想将+1添加到该键的第三个值(因此为什么每个键的第三个值为0)。
基本上,11> = 10且11 <= 20?是的,所以+1。所以现在它是{0:[10,20,1],1:[15,20,0],2:[20,30,0], 3:[30,90,0]}
并通过每个键执行此操作。
所以基本上如何添加+1?我也遇到了以下错误:
if number >= dictionary.get(key,0) and number <= dictionary.get(key,1):
TypeError: unorderable types: int() >= list()
代码:
dictionary = dict(list)
for number in numList:
for key in dictionary:
if number >= dictionary.get(key,0) and number <= dictionary.get(key,1):
print("testing") #add 1
答案 0 :(得分:3)
您误解了dict.get
的含义 - 如果字典中没有键,则第二个参数实际上是要返回的默认值。在您的情况下,它实际上返回一个列表。你想要的是:
if number >= dictionary[key][0] and number <= dictionary[key][1]:
...
答案 1 :(得分:1)
这可能会更好地重新组织您的字典。试试这个:
table = {(10,20): 0, (15,20): 0, (20,30): 0, (30,90): 0}
for key in table:
start,end = key
if start <= num <= end:
table[key] += 1
请记住,只要您使用其键只是整数的字典,您也可以使用列表。组织它们,使它们的密钥相关。
答案 2 :(得分:1)
dictionary = {0:[10,20,0],1:[15,20,0],2:[20,30,0], 3:[30,90,0]}
list_numbers = [11,54,22,42,5,16,79,18,39]
for n in list_numbers:
for value in dictionary.values():
if value[0] < n < value[1]:
value[2]+=1
输出:
print dictionary
{0:[10,20,3],1:[15,20,2],2:[20,30,1],3:[30,90,4]}