Python:字典?

Python:字典?,python,Python,我没有得到代码中的第三行,“如果ch in d”。如果dic中还没有任何条目,为什么该字符会出现在字典中 另外,我不明白d[ch]+=1应该是什么意思,以及为什么会有else语句。有人能帮我吗 因为每次执行循环时,都会在字典中添加或更新键。如果键已经存在,则您正在更新其值。因为每次循环时,您都在字典中添加或更新键。如果密钥已经存在,则您正在更新其值。与许多其他脚本语言不同,Python不会自动创建元素。您将看到getdefault()和setdefault()方法,这两种方法对于此类情况非常有用

我没有得到代码中的第三行,“如果ch in d”。如果dic中还没有任何条目,为什么该字符会出现在字典中


另外,我不明白d[ch]+=1应该是什么意思,以及为什么会有else语句。有人能帮我吗

因为每次执行循环时,都会在字典中添加或更新键。如果键已经存在,则您正在更新其值。

因为每次循环时,您都在字典中添加或更新键。如果密钥已经存在,则您正在更新其值。

与许多其他脚本语言不同,Python不会自动创建元素。您将看到getdefault()和setdefault()方法,这两种方法对于此类情况非常有用。您还可以按照中所述对dict进行子类化。

与许多其他脚本语言不同,Python不会自动创建元素。您将看到getdefault()和setdefault()方法,这两种方法对于此类情况非常有用。您还可以按照中所述对dict进行子类化。

理解此类代码的最简单方法是添加
print
s以查看它实际在做什么。所以

def count_chars(s):
    '''Return a dict that contains each character in str s as a key. The
    value associated with each key is the number of times that character
    occurs in s.'''

    d = {}
    for ch in s:
       if ch in d:
          d[ch] += 1
       else:
          d[ch] = 1
    return d
告诉你:

def count_chars(s):
    '''Return a dict that contains each character in str s as a key. The
    value associated with each key is the number of times that character
    occurs in s.'''

    d = {}
    for ch in s:
       if ch in d:
          print('{} is in d'.format(ch))
          d[ch] += 1
       else:
          print('{} is NOT in d'.format(ch))
          d[ch] = 1
      print('d is now: {}'.format(d))
    return d

count_chars('abcdaaaa')

理解这样的代码最简单的方法是添加
print
s以查看它实际上在做什么。所以

def count_chars(s):
    '''Return a dict that contains each character in str s as a key. The
    value associated with each key is the number of times that character
    occurs in s.'''

    d = {}
    for ch in s:
       if ch in d:
          d[ch] += 1
       else:
          d[ch] = 1
    return d
告诉你:

def count_chars(s):
    '''Return a dict that contains each character in str s as a key. The
    value associated with each key is the number of times that character
    occurs in s.'''

    d = {}
    for ch in s:
       if ch in d:
          print('{} is in d'.format(ch))
          d[ch] += 1
       else:
          print('{} is NOT in d'.format(ch))
          d[ch] = 1
      print('d is now: {}'.format(d))
    return d

count_chars('abcdaaaa')
我没有得到代码中的第三行,“如果ch in d”

它的意思就是:它检查
ch
是否在
d

如果dic中还没有任何条目,为什么该字符会出现在字典中

因为最终可能会。代码在for循环中,循环的要点是安排代码多次运行。其中一些跑步记录把事情编入了字典

而且,我不明白d[ch]+=1应该是什么意思

它的意思和语言参考所说的一样

为什么会有另一种说法

因为当条件不成立时,我们想要做一些事情,当条件成立时,我们也需要做一些事情

我没有得到代码中的第三行,“如果ch in d”

它的意思就是:它检查
ch
是否在
d

如果dic中还没有任何条目,为什么该字符会出现在字典中

因为最终可能会。代码在for循环中,循环的要点是安排代码多次运行。其中一些跑步记录把事情编入了字典

而且,我不明白d[ch]+=1应该是什么意思

它的意思和语言参考所说的一样

为什么会有另一种说法


因为当条件不成立时,我们想要做一些事情,当条件成立时,我们也需要做一些事情

如果我们在代码的开头创建了一个空的dict,为什么我们能够更新字典呢?因为它只有在第一次通过循环时才是空的。假设您将在循环中迭代多次。当然,可能“s”只包含一个字符,在这种情况下,if/else是不必要的。但是这个函数是用来处理长度大于等于0的s的。在代码的开头,您已经初始化了一个空的dict,但是python允许您动态地在字典中添加和删除元素。因此,在第一次循环中,我猜它将跳过if语句,直接转到else语句,因为我们以前没有遇到过ch?如果我们在代码开头创建了一个空dict,为什么我们能够更新字典?因为它只有在循环的第一次传递时才是空的。假设您将在循环中迭代多次。当然,可能“s”只包含一个字符,在这种情况下,if/else是不必要的。但是这个函数是用来处理长度大于等于0的s的。在代码的开头,您已经初始化了一个空的dict,但是python允许您动态地在字典中添加和删除元素。因此,在第一次循环中,我猜它将跳过if语句,直接转到else语句,因为我们以前没有遇到过ch?看起来您几乎不了解python的基本知识。。基本理论是,计算每个字母的出现次数。如果我们以前发现过这个字符,我们将它的值增加1,以表示另一次遭遇。如果不是,我们将其设置为1,表示1次遭遇。想一想,这并不难。谢谢你的解释,丹。你可能想通过一些视频来了解Python字典和Python。这里有一个资源:看起来您几乎不了解python的基本知识。。基本理论是,计算每个字母的出现次数。如果我们以前发现过这个字符,我们将它的值增加1,以表示另一次遭遇。如果不是,我们将其设置为1,表示1次遭遇。想一想,这并不难。谢谢你的解释,丹。你可能想通过一些视频来了解Python字典和Python。这里有一个资源:哦,我没有想到印刷。谢谢你的回复!哦,我没想到印刷。谢谢你的回复!