鱼C论坛

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

内嵌闭包

[复制链接]
发表于 2017-3-30 18:43:30 | 显示全部楼层 |阅读模式

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

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

x
str1 = '''拷贝过来的字符串'''
list1 = []

for each in str1:
    if each not in list1:
        if each == '\n':
            print('\\n', str1.count(each))
        else:
            print(each, str1.count(each))
        list1.append(each)



是小甲鱼20讲的课后习题答案看不懂呀!!!!求解释呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-30 19:39:03 | 显示全部楼层
哪部分不懂,具体
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 13:42:25 | 显示全部楼层
str1 = '''拷贝过来的字符串'''
list1 = []

for each in str1:                 #按顺序取str1字符串里的字符 赋值给each  (例子 each = i)
    if each not in list1:         #假如each赋值的这个字符不在list1里   (i 不在list1里面吧)
        if each == '\n':           #假如each 等于换行符
            print('\\n', str1.count(each))     #打印换行符 和 换行符数量      \n  4
        else:                           
            print(each, str1.count(each))     #打印each 所附的值 和数量       i   5
        list1.append(each)                      #将each所赋值的字符,添加到list1里面   list1 = [i,\n]
                                                           #for循环: 把str1 里面所有的字符都查找一遍
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-31 20:10:57 | 显示全部楼层
ButcherRabbit 发表于 2017-3-31 13:42
str1 = '''拷贝过来的字符串'''
list1 = []

为什么不加 if each not in list1:就是每遇到一个字符就要重新输出呀???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-31 22:11:03 | 显示全部楼层
ZYM111 发表于 2017-3-31 20:10
为什么不加 if each not in list1:就是每遇到一个字符就要重新输出呀???


因为避免重复啊,if  each not in list1:      假如str1='aabcdd',

for 第一次循环each = a  出来的list1 =['a']对吧,统计a 在str1出现的次数为2

for第二次循环,each 还是等于a,假如没有if each not in list1:  是不是'a'还要执行下面的

else:print(each,str1.count(each))这个呢,就相当于又统计了a在str1里出现的次数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-7 08:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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