【发布时间】:2019-07-17 02:25:30
【问题描述】:
这是字母:
letters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
我用这个列出了它:
chars=[]
for i in letters:
chars.append(i)
所以我有一个字符列表。
我需要所有variables=0每一个来声明。我写道:
for i in chars:
chars[i]=0;
但是有一个错误信息,像这样:
Traceback (most recent call last):
File "python", line 15, in <module>
TypeError: list indices must be integers or slices, not str
问题:如何声明这些多个变量?
【问题讨论】:
-
for i in chars,循环遍历列表中的 items,而不是索引,这会导致您使用字母而不是整数来索引列表。你可能想要,for i, e in enumerate(chars) -
我认为这里的根本问题是你想要一个字典,而不是一个列表。像这样:
chars = {}。然后for i in letters: chars[i] = 0. -
或者,如果您的目标是对每个字母进行计数,那么您可能只是想要
chars = collections.Counter()。或者,更好的是,您甚至可以让Counter进行所有计数,例如chars = collections.Counter(input_string)。 -
我建议您再学习一两个关于聚合数据类型的教程:尤其是列表、字典和字符串。我不清楚你想做什么,但你尝试做的方式表明,使用不同的数据结构,事情会更容易。
-
为什么要将 62 个变量设置为 0?最终程序应该做什么?
标签: python