fxj2002 发表于 2022-5-2 15:20:48

问题求助

题目为下边这个长字符串中各个字符出现的次数
代码:
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)
这三行红色代码不知道有什么用,恳请各位大佬帮帮忙

isdkz 发表于 2022-5-2 15:24:30

本帖最后由 isdkz 于 2022-5-2 15:25 编辑

list1 用于存放已经统计过的字符,

if each not in list1 如果 each 没有在 list1 中,说明 each 还没被统计过,

list1.append(each) 将统计了的 each 加进 list1,记录被统计过的字符

fxj2002 发表于 2022-5-2 15:44:30

isdkz 发表于 2022-5-2 15:24
list1 用于存放已经统计过的字符,

if each not in list1 如果 each 没有在 list1 中,说明 each 还没被 ...

如果不用这三条代码,直接用for循环为什么不行啊,有哪些问题

isdkz 发表于 2022-5-2 15:49:08

fxj2002 发表于 2022-5-2 15:44
如果不用这三条代码,直接用for循环为什么不行啊,有哪些问题

因为 str1 中会有多个相同的字符,如果不用这三条的话,

可能同一个字符会多次打印出现的次数

傻眼貓咪 发表于 2022-5-2 15:53:16

fxj2002 发表于 2022-5-2 15:44
如果不用这三条代码,直接用for循环为什么不行啊,有哪些问题

如果不想用三条代码,就用一条吧:str1 = "FishC"
list1 = {key: str1.count(key) for key in set(str1)}
print(list1)
页: [1]
查看完整版本: 问题求助