Rsynow 发表于 2020-3-20 17:58:51

逻辑不清楚

words = ['apple', 'bat', 'bar', 'atom', 'book','student','same']
by_letter = {}
for word in words:
    letter = word
    if letter not in by_letter:
      by_letter =
    else:
         by_letter.append(word)
by_letterrun的结果:
{'a': ['apple', 'atom'], 'b': ['bat', 'bar', 'book'], 's': ['student', 'same']}
代码来源:《Python for data analysis》第二版
代码目的:通过首字母将列表中的单词分类。
请问这段的的逻辑是什么?{:10_269:}看了好几遍
还是不懂为什么能够能够将列表中的元素按字母分类
???:run的结果中'a' , 'b'是哪里来的



qiuyouzhi 发表于 2020-3-20 18:02:47

for word in words
word就是每个单词,
word就是单词的开头
word就是每个键的首字符

挣扎起飞 发表于 2020-3-20 18:13:22

words = ['apple', 'bat', 'bar', 'atom', 'book','student','same']
by_letter = {}
for word in words:
# word 相当于列表words中的一个元素,for循环将整个words列表中的每个元素都过了一遍
    letter = word
# letter 是word字符串的第一个字符,就相当于将单词的第一个字母提取出来,识别
    if letter not in by_letter:
      by_letter =
# 如果识别出来的这个字母在字典中已经存在,那么就把相应的单词放入字典中对应的字母键下面
    else:
         by_letter.append(word)
# 如果识别出来的字母在字典中不存在,那么就在字典中添加相应的键和值
by_letter

Rsynow 发表于 2020-3-20 20:40:22

挣扎起飞 发表于 2020-3-20 18:13
words = ['apple', 'bat', 'bar', 'atom', 'book','student','same']
by_letter = {}
for word in words: ...

请问解释的最后两句是不是顺序应该对调?{:5_109:}

dragov 发表于 2020-3-20 20:59:48

Rsynow 发表于 2020-3-20 20:40
请问解释的最后两句是不是顺序应该对调?

{:7_130:}解释的最后两句,我认为顺序应该对调才对!

页: [1]
查看完整版本: 逻辑不清楚