[英]Error: list indices must be integers or slices, not tuple
試圖讀取與 abjadMapV 一致的輸入。 然后返回 AbjadMap 中的字符。 但我不斷收到此錯誤。
def show(ln):
abjadMapV=[1,2,3,4,5,6,7,8,9,
10,20,30,40,50,60,70,80,90,
100,200,300,400,500,600,700,800,900,
1000,29]
abjadMap=['\u0627','\u0628','\u062C','\u062F','\u0647','\u0648','\u0632','\u062D','\u0637',
'\u064A','\u0643','\u0644','\u0645','\u0646','\u0633','\u0639','\u0641','\u0635',
'\u0642','\u0631','\u0634','\u062A','\u062B','\u062E','\u0630','\u0636','\u0638',
'\u063A','\uFEFC']
abjadN=["alif","ba","jeem","dal","haa","waw","za","ha","da",
"ya","kahf","laam","meem","noon","seen","ayn","fa","sadh",
"qaf","ra","sheen","ta","tha","kha","thal","dhad","za",
"gayn","lam alif"]
i=0
for i in enumerate(abjadMapV):
if ln in abjadMapV[i] :
print(i)
print(abjadMap[i])
return abjadMap[i]
b=input()
a=show(b)
print(a)
編輯為新代碼,試圖讓 show 返回索引
def show(ln):
abjadMapV=[1,2,3,4,5,6,7,8,9,
10,20,30,40,50,60,70,80,90,
100,200,300,400,500,600,700,800,900,
1000,29]
abjadMap=['\u0627','\u0628','\u062C','\u062F','\u0647','\u0648','\u0632','\u062D','\u0637',
'\u064A','\u0643','\u0644','\u0645','\u0646','\u0633','\u0639','\u0641','\u0635',
'\u0642','\u0631','\u0634','\u062A','\u062B','\u062E','\u0630','\u0636','\u0638',
'\u063A','\uFEFC']
abjadN=["alif","ba","jeem","dal","haa","waw","za","ha","da",
"ya","kahf","laam","meem","noon","seen","ayn","fa","sadh",
"qaf","ra","sheen","ta","tha","kha","thal","dhad","za",
"gayn","lam alif"]
i=0
for i in abjadMapV:
if ln == i:
return abjadMap.index(i)
b=輸入() a=顯示(b) 打印(a)
函數 enumerate 返回元組。 所以在行
print(abjadMap[i]) # i here is tuple.
而且您已經發現列表索引必須是整數而不是元組。 因此,相應地編輯您的代碼。 如果您不熟悉 enumerate 函數,請查看下面給出的示例:
l=['a','b','c']
k=enumerate(l)
enumerate 函數返回可迭代對象:所以 k 是一個可迭代對象,
next(k)
給出輸出:
(0,'a')
這意味着 0 是列表 l 中 a 的索引。
for i in enumerate(l)
i 是一個元組而不是一個整數。
enumerate()
返回一個元組列表,每個元組都是一個索引值對。 您可以在迭代它們以解決問題時進行解構:
for i,j in enumerate(abjadMapV):
if ln in j: # j is the value i. e. j = abjadMap[i]
print(i) # i is the index
print(abjadMap[i] )
return abjadMap[i]
否則,您可以遍歷range(len(abjadMapV))
並使用該變量作為索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.