鱼C论坛

 找回密码
 立即注册
查看: 1081|回复: 6

第20讲的课后习题请教

[复制链接]
发表于 2020-3-15 18:53:02 | 显示全部楼层 |阅读模式

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

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

x
动动手的第一题,把代码简化为:

str1 = '拷贝过来的字符串拷贝过来的字符串'
list1 = []
for each in str1:
    if each not in list1:
        print(each, str1.count(each))
    list1.append(each)

如何理解 if each not in list1的not呢?如果把not去掉,发现跑出结果竟然是一样的。都是
拷 2
贝 2
过 2
来 2
的 2
字 2
符 2
串 2

list1.append(each)的作用也不明白,去掉这行,line4 有not就有输出,没有not就没有输出。

请大佬答疑解惑,谢谢!




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

使用道具 举报

发表于 2020-3-15 18:56:56 | 显示全部楼层
1,not是用来防止有重复字符的
2,将each添加进list1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-15 20:30:06 | 显示全部楼层
其实 list1 的作用就是去除重复元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-16 09:12:56 | 显示全部楼层
qiuyouzhi 发表于 2020-3-15 18:56
1,not是用来防止有重复字符的
2,将each添加进list1

if each not in list1:
         print(each, str1.count(each))
那each in list1的情况下,如何执行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-16 09:16:00 | 显示全部楼层
zltzlt 发表于 2020-3-15 20:30
其实 list1 的作用就是去除重复元素

str1 = '拷贝过来的字符串拷贝过来的字符串'
list1 = []
for each in str1:
    if each not in list1:
        print(each, str1.count(each))
    list1.append(each)
>>> list1
['拷', '贝', '过', '来', '的', '字', '符', '串', '拷', '贝', '过', '来', '的', '字', '符', '串']

list1没有去除重复元素呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-16 09:22:47 | 显示全部楼层
wqx285314590 发表于 2020-3-16 09:16
str1 = '拷贝过来的字符串拷贝过来的字符串'
list1 = []
for each in str1:

不是要在列表中去重,而是在显示中去重
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 15:44:31 | 显示全部楼层
wqx285314590 发表于 2020-3-16 09:16
str1 = '拷贝过来的字符串拷贝过来的字符串'
list1 = []
for each in str1:

排除重复的,你的list1位置放错了,他应该是在if each not in list1里面,所以如果有重复它就会跳过if的运行,没重复他才运行并进入list1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 02:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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