我不明白字典"计算"正在被' List'。
填充和引用具体来说,为什么列表中的项目('列表')会被添加到字典中('计算'),其中" if item in count"声明?
'计数'字典是空的,并且没有'追加'功能
这是python函数:
def countDuplicates(List):
count = {}
for item in List:
if item in count:
count[item] += 1
else:
count[item] = 1
return count
print(countDuplicates([1, 2, 4, 3, 2, 2, 5]))
输出:{1: 1, 2: 3, 3: 1, 4: 1, 5: 1}
答案 0 :(得分:2)
您可以手动运行代码以查看其工作原理
count = {} // empty dict
遍历列表第一个元素是1它检查此行中的dict以查看此元素是否添加到dict之前
if item in count:
它不在计数中,因此它将元素放入列表并在此行中使其值为1
count[item] = 1 //This appends the item to the dict as a key and puts value of 1
计数变为
count ={{1:1}}
然后它遍历下一个元素,即2个相同的故事计数变为
count={{1:1},{2:1}}
下一项是4
count = {{1:1},{2:1},{4,1}}
下一个项目是2,在这种情况下我们在dict中有2个,所以它在这一行中将它的值增加1
count[item] += 1
计数变为
count = {{1:1},{2:2},{4,1}}
并一直持续到列表完成
答案 1 :(得分:1)
这就是它检查if item in count
的原因,如果这是你第一次看到计数,它将会失败(因为它还没有在词典中定义)。
在这种情况下,它将使用count[item] = 1
定义它。
下次看到计数时,它已经被定义(为1),因此您可以使用count[item] += 1
增加它,即count[item] = count[item] + 1
,即count[item] = 1 + 1
等。
答案 2 :(得分:0)
具体来说,为什么列表中的项目('列表')会被添加到字典中('计算'),其中" if item in count"声明?
`checking if the element already added in to dictionary, if existing increment the value associated with item.
Example:
[1,2,4,3,2,2,5]
dict[item] = 1 value is '1'--> Else block, key '1'(item) is not there in the dict, add to and increment the occurrence by '1'
when the element in list[1,2,4,3,2,2,5] is already present in the dict
count[item] += 1 --> increment the occurrence against each item`
=================
The 'count' dictionary is empty to begin with and there is no 'append' function.
append functionality not supported for empty dict and can be achieved by
count[item] += 1