【发布时间】:2020-03-07 20:37:15
【问题描述】:
我正在尝试创建一个刽子手机器人,它遍历整个英语语言并逐个字符地计算相同长度的每个单词。这个想法是机器人将在 y 索引处返回 x 长度的最常用字符。到目前为止,我已经成功地将所有单词导入到一个列表中,并将该列表过滤为仅 x 长度的单词。我似乎遇到问题的地方是更新 y 索引。
为了完成这项任务,我创建了一个字典,它将列表作为键值存储在该字典中。单词长度的所有索引都已初始化为 0。我的想法是,我将遍历所有单词的整个单词长度,并计算特定索引处字符的出现次数。所以我的字典实际上看起来像:
D = {'a': [0, 0, …, 0], 'b':[0, 0, …, 0], …, 'z': [0, 0, …, 0]}
我想做的是更新每个键和每个键的索引,以便我可以找到在该特定索引处相同长度的所有字母的总出现次数。最终结果将类似于以下内容:
D = {'a': [4137, 568, …, 897], …., 'z':[523, 129, … , 321]}
我当前的解决方案是尝试将索引映射到键,并增加每个索引,但我收到以下错误消息:
TypeError: 列表索引必须是整数或切片,而不是 str
我知道这是一口,但我非常感谢任何帮助。感谢您的时间和耐心。
def occurence_of_characters(L, word):
length_word = len(word)
letters = string.ascii_letters
numbers = string.digits
characters = letters + numbers + "-" + "."
characterlist = list(characters)
D = {i:[0 for j in range(length_word)] for i in characterlist}
#0 for j in range(length_word)
for word in L:
for key in D:
#l = D.get(key)
if key in word:
for index in key:
D[key][int(index)] = list(map(map(lambda index: index+1, D[key][index]), D[key] ))
print(D)
【问题讨论】:
-
你想要达到的效果有点不清楚,请提供一个示例输入和输出(当然,对于有限的一组单词。)
-
变量
L是做什么的?另外,请缩短解释并提供更多信息(如@lorg 所说) -
我想列出一些英语单词,例如:mark、cats、dogs、zips、rats。我想计算每个索引处每个字符的出现次数。根据上面的话,我的返回语句看起来像: D = {'a' : [0, 3, 0, 0], ..., 's': [0, 0, 0, 4], ..., ' z': [1, 0, 0, 0]}
-
L 是相同长度的单词列表。我正在从另一个函数中导入它。这工作正常。
标签: python python-3.x list dictionary