【发布时间】:2021-07-08 13:31:09
【问题描述】:
我有一长串字符串(以下只是 117k 列表的一个示例):
names = ['abc', 'aabc', 'aaabc', 'abbc', 'abxcc']
有没有一种有效的方法来计算其中出现了多少双字符(例如aa)或三字符(例如aaa)?我能想出的唯一方法是有一些循环如下:
for letter in alphabet:
for word in strings_list:
for letter in word
etc.
但由于我的列表很大,我想知道是否有更有效的方法。
我还应该提到我的列表是中文的,因此我有大约 6600 个唯一字符
预期输出:
number_of_doubles = value_1
number_of_triples = value_2
更新:
澄清一下,像aaa 这样的字符串应该算作三倍而不是两个双倍
【问题讨论】:
-
预期输出是什么?
-
刚刚更新了我的问题以显示它!
-
尝试提出任何解决方案并将其展示出来。这个问题太宽泛了,并没有真正显示any attempts。
-
zip(word[:-1],word[1:])将遍历一个可迭代对象中的连续对。你应该能够用它来组成你的答案。