Проверьте, есть ли письмо в двумерном списке - PullRequest
0 голосов
/ 20 марта 2012

Я создал список, содержащий словарь со связанными словами в двумерном списке.но когда я пытаюсь найти слово, содержащееся в списке, и напечатать соответствующие слова, меня бросает:

TypeError: list indices must be integers, not list

Вот мой код:

import parallel
import time
import string

abc=[['a','EB'], ['b','F8']]

print ("Write something: ")
text = raw_input()
lent=len(text)
print (lent)
p=parallel.Parallel()
text1=list(text)

for x in text1:
print (x)
    i=0
for i in abc:
    if x in abc[0][i]:
           print(abc[0][i])
       p.setData(int('0x'+abc[0][i],16))

 time.sleep(0.5)

Ответы [ 2 ]

1 голос
/ 20 марта 2012
>>> abc = [['a','EB'],['b','F8']]
>>> for i in abc:
...    print i
...
['a', 'EB']
['b', 'F8']

Так что вам, вероятно, нужно это:

for i in abc:
    if x == i[0]:
           print(i[1])
0 голосов
/ 20 марта 2012

Ошибка типа здесь

 if x in abc[0][i]:

i будет списком, первый проход i будет ['a','EB'], а второй проход i будет ['b','F8']

Нет смысла индексировать что-то с помощью другого списка, вы, вероятно, подумали, что i был индексом, но в python цикл for вместо этого будет проходить через значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...