gpt4 book ai didi

python - 计算字符串中的连续字符

转载 作者:太空狗 更新时间:2023-10-29 22:04:16 25 4
gpt4 key购买 nike

我需要编写一个代码来分割字符串(这是一个输入),将其附加到列表中,计算每个字母的数量 - 如果它与它之前的字母相同,则不要将其放入列表,而是增加该字母在前一个字母中的出现次数。好吧,它应该是这样的:

assassin [['a', 1], ['s', 2], ['a', 1], ['s', 2]], ['i', 1], ['n', 1]

刺客这个词只是需要的一个例子..到目前为止,我的代码是这样的:

userin = raw_input("Please enter a string :")
inputlist = []
inputlist.append(userin)
biglist = []
i=0
count = {}
while i<(len(userin)):
slicer = inputlist[0][i]
for s in userin:
if count.has_key(s):
count[s] += 1
else:
count[s] = 1
biglist.append([slicer,s])
i = i+1
print biglist

谢谢!

最佳答案

使用Collections.Counter() ,字典是一种更好的存储方式:

>>> from collections import Counter
>>> strs="assassin"
>>> Counter(strs)
Counter({'s': 4, 'a': 2, 'i': 1, 'n': 1})

或使用 itertools.groupby() :

>>> [[k, len(list(g))] for k, g in groupby(strs)]
[['a', 1], ['s', 2], ['a', 1], ['s', 2], ['i', 1], ['n', 1]]

关于python - 计算字符串中的连续字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13197668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com