2014-09-24 4 views
-2

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

list[1] = "Some text" 
list[2] = "Some more text" 
list[3] = "Even more text" 

Так что один очень длинный список не требуется (это также делает его легче найти долгосрочные значения)

Если вы знаете, с массивов в Small Basic, вы поймете, что я имею в виду.

+2

Пожалуйста, не вызывайте список 'list', потому что вы маскируете функцию этим именем. – dawg

+1

Звучит скорее как [dict] (https://docs.python.org/3/library/stdtypes.html#dict). – Ryan

+1

Я думаю, что вы должны дать базовый [Python Tutorial] (https://developers.google.com/edu/python/). – skrrgwasme

ответ

0

С помощью Python dict вы можете сделать что-то в этом направлении.

Во-первых, есть все, что вам строки текста в многострочного блока:

constants='''\ 
Some text 
Some more text 
Even more text''' 

затем использовать Dict понимание, чтобы создать отображение Betweens строки текста и номер:

to_test={line:i for i, line in enumerate(constants.splitlines(), 1)} 

>>> to_test 
{'Some more text': 2, 'Some text': 1, 'Even more text': 3} 

Тогда вы испытываете членство в каком-либо тесте:

>>> 'Some text' in to_test 
True 

И найдите связанное целое число с текстом:

>>> to_test['Some text'] 
1 
0

В дополнение к ответу DAWG, в, если вы действительно хотите получить список питона, вы должны сделать это так:

l = ["Some text", "Some more text", "Even more text"] 

Тогда, вы можете использовать его:

>>> "Some text" in l 
True 
>>> l.index("Some text") 
0 

Вы мог бы также построить l таким образом, но он менее "pythonic":

l = [] 
l.insert(0, "Some text") 
l.insert(1, "Some more text") 
l.insert(2, "Some more text") 

Также помните, что индексация python равна 0!