通过赋值运算符将键,值对插入空dict

时间:2014-06-04 19:20:59

标签: python dictionary

我正在通过麻省理工学院6.00课程在OpenCourseWare上学习,并且不太了解我遇到过的一些代码。

def deal_hand(n):
    """
    Returns a random hand containing n lowercase letters.
    At least n/3 the letters in the hand should be VOWELS.

    Hands are represented as dictionaries. The keys are
    letters and the values are the number of times the
    particular letter is repeated in that hand.

    n: int >= 0
    returns: dictionary (string -> int)
    """
    hand={}
    num_vowels = n / 3

    for i in range(num_vowels):
        x = VOWELS[random.randrange(0,len(VOWELS))]
        hand[x] = hand.get(x, 0) + 1

    for i in range(num_vowels, n):    
        x = CONSONANTS[random.randrange(0,len(CONSONANTS))]
        hand[x] = hand.get(x, 0) + 1

    return hand

我的问题是关于hand[x] = hand.get(x, 0) + 1

我理解这会查找与键相关联的值(键是从前面在脚本中启动的字符串中取出的元音或辅音),然后将其加1。

我的问题是Python如何在hand[x]尚未实际存在的情况下查找与hand[x] = hand.get(x, 0) + 1相关联的值。当python到达hand[x]时,它如何为从未存在的密钥(即{{1}})分配新值?

1 个答案:

答案 0 :(得分:3)

.get()方法有一个可选的第二个参数,如果它不存在则指定一个默认值。在这种情况下,如果密钥x不存在,则返回0。