我试图不使用count()
或count()
来计算每个字母
dict()
我确实写了一些东西,但我的代码仍然有问题
myString = []
#countList = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
myString ="pynativepynvepynative"
countList = [len(myString)+1]
for i in range(len(myString)):
#print("Here 0")
for j in range(len(countList)):
#print("Here 1")
if i == countList[j]:
#print("Here 1.1")
countList[j+1] = (countList[j+1] + 1)
break
else:
#print("Here 2")
countList.append(myString[i])
countList.append(1)
break
print(countList)
预期产出:
['p', 3, 'y', 3, 'n', 3, 'a', 2, 't', 2, 'i', 2, 'v', 3, 'e', 3]
实际产量:
[22, 'p', 1, 'y', 1, 'n', 1, 'a', 1, 't', 1, 'i', 1, 'v', 1, 'e', 1, 'p', 1, 'y', 1, 'n', 1, 'v', 1, 'e', 1, 'p', 1, 'y', 1, 'n', 1, 'a', 1, 't', 1, 'i', 1, 'v', 1, 'e', 1]
使用dict子类^{} 计算对象,这使它成为一个单行程序:
(从技术上讲,这不是dict,而是dict的一个子类。)
您可以从中获取元组列表:
列表或元组对于计数是不可取的,因为您希望能够分别按键(正在计数的对象)和值(计数)进行访问/排序。理论上,您可以在列表/元组列表上执行此操作,但这是一件痛苦的事情,
Counter
alrady定义了您需要的几种方法您可以做的是从字符串中获取唯一的字母,并在字符串中为每个唯一的字母循环以计算其频率
输出
编辑,如果需要dict格式的解决方案,请在函数中添加
res = {a:b for a,b in zip(res[::2], res[1::2])}
使用我的问题代码,我能够通过修改问题代码得到正确答案
我的问题是我不知道如何正确地启动
countList
实际产量:
相关问题 更多 >
编程相关推荐