鱼C论坛

 找回密码
 立即注册
查看: 1395|回复: 4

[已解决]逻辑不清楚

[复制链接]
发表于 2020-3-20 17:58:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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



最佳答案
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[0]
# letter 是word字符串的第一个字符,就相当于将单词的第一个字母提取出来,识别
    if letter not in by_letter:
        by_letter[letter] = [word]
# 如果识别出来的这个字母在字典中已经存在,那么就把相应的单词放入字典中对应的字母键下面
    else:
         by_letter[letter].append(word)
# 如果识别出来的字母在字典中不存在,那么就在字典中添加相应的键和值
by_letter
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-20 18:02:47 | 显示全部楼层
for word in words
word就是每个单词,
word[0]就是单词的开头
word[0]就是每个键的首字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 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[0]
# letter 是word字符串的第一个字符,就相当于将单词的第一个字母提取出来,识别
    if letter not in by_letter:
        by_letter[letter] = [word]
# 如果识别出来的这个字母在字典中已经存在,那么就把相应的单词放入字典中对应的字母键下面
    else:
         by_letter[letter].append(word)
# 如果识别出来的字母在字典中不存在,那么就在字典中添加相应的键和值
by_letter
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 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: ...

请问解释的最后两句是不是顺序应该对调?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 20:59:48 | 显示全部楼层
Rsynow 发表于 2020-3-20 20:40
请问解释的最后两句是不是顺序应该对调?
解释的最后两句,我认为顺序应该对调才对!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 04:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表