用list if语句填充字典

时间:2017-10-15 22:49:32

标签: python list function dictionary

我不明白字典"计算"正在被' 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}

3 个答案:

答案 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