xiaofan1228 发表于 2020-2-17 14:49:36

关于统计字符串数量的问题

这个是小甲鱼的答案

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)

我因为自己写了input所以发现了个问题:

当输入字符为 “\\\\\n”的时候,答案是 "\ 2\n 1"
也就是当多个\出现时,第一个\会被当做转义符号而不被计数,这种情况怎么处理呢?

zltzlt 发表于 2020-2-17 14:53:44

"\\\\\n" 其实只有两个反斜杠和一个换行符

>>> print("\\\\\n")
\\

>>>

一个账号 发表于 2020-2-17 14:55:20

没办法处理。

qiuyouzhi 发表于 2020-2-17 14:55:50

用原始字符串
str1 = r'''\\\\\n'''

xiaofan1228 发表于 2020-2-17 15:01:21

zltzlt 发表于 2020-2-17 14:53
"\\\\\n" 其实只有两个反斜杠和一个换行符

问题就在这里,
我写的是str1 = input("""请输入字符串:""")
输入的 \\\\\n,里面有四个反斜杠和一个换行符,但是统计结果只有两个,那不是出问题了吗?
如果按照这种逻辑,是不是还要把转义字符和转义字符前面的字符连起来加一个判断条件?或者这种情况下该怎么处理比较高效呢?

zltzlt 发表于 2020-2-17 15:02:49

xiaofan1228 发表于 2020-2-17 15:01
问题就在这里,
我写的是
输入的 \\\\\n,里面有四个反斜杠和一个换行符,但是统计结果只有两个,那 ...

我这里正常:

请输入:\\\\\n
\ 5
n 1

4goodworld 发表于 2020-2-17 15:11:01

zltzlt 发表于 2020-2-17 15:02
我这里正常:

管理,这个C的问题吗?{:10_277:}
抱歉,点错栏目了,误以为是C栏目下

xiaofan1228 发表于 2020-2-17 15:16:56

qiuyouzhi 发表于 2020-2-17 14:55
用原始字符串

这样就是牺牲掉了所有的转义字符,包括\n了。

不过达到我的目的了,多谢!
页: [1]
查看完整版本: 关于统计字符串数量的问题