我有一个包含26个键的列表字典,每个键都有26个给定长度的列表。这些键代表英语拉丁字母的字母。该列表包含给定位置出现的给定字符,用于一定长度的单词。例如,如果我们要表示出现长度为5的单词,我可能会收到以下输出:
D = {'a':[5,2,0,1,4],…。,'z':[0,7,5,2,1]}
我的目标是按索引比较键a和键z。所以我想将'a':[5]与'z':[0]进行比较,如果'a'>'z',我想返回a。基本,我想比较每个索引,如果该索引较大,我想返回该索引的字母。我当前的代码如下:
def most_common_character_by_index(D):
for key in D:
for value in key:
f = map(D[key], D[value] )
print(list[f])
当时的想法是绘制索引并进行比较。也许我缺少什么?当前错误代码返回:print(list [f]) TypeError:“类型”对象不可下标
答案 0 :(得分:1)
def mostCommonLetters(D):
numberOfValues = len(D['a'])
listOfMostCommonLetters = []
for i in range(numberOfValues):
currMax = D['a'][i]
mostCommonLetter = 'a'
for letter in D:
if D[letter][i] >= currMax:
currMax = D[letter][i]
mostCommonLetter = letter
listOfMostCommonLetters.append(mostCommonLetter)
return listOfMostCommonLetters
print(mostCommonLetters({'a': [5, 2, 0, 1, 4],'z': [0, 7, 5, 2, 1]}))
答案 1 :(得分:0)
主要问题是这样:
list[f]
您将放在方括号中,这意味着您试图订阅list
构造函数。因此是错误。
你想要的是
list(f)
无论如何,还有其他问题:
for value in key:
将遍历密钥本身,您可能需要for value in D[key]
。
此外,f
被用在循环之外。