2014-09-24 56 views
-2

我正在创建一个程序,其中输入对象被检查以查看它是否出现在列表中。如果是,那么它会得到位置编号,然后用它来确定来自另一个列表的响应。 是否有可能有变量列表中,像这样:Python列表值设置

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

这样一个并不需要很长的名单(这也使得它更容易找到项值)

如果你知道有在Small Basic中的数组,你会明白我的意思。

+2

请不要调用列表'list',因为你用该名称掩盖了函数。 – dawg 2014-09-24 15:52:09

+1

听起来更像你想要的[字典](https://docs.python.org/3/library/stdtypes.html#dict)。 – Ryan 2014-09-24 15:52:24

+1

我认为你应该首先给出一个基本的[Python教程](https://developers.google.com/edu/python/)。 – skrrgwasme 2014-09-24 16:00:53

回答

0

使用Python dict,您可以沿着这些线做些事情。

首先,有你行文字在多块:

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

然后用字典的理解,以创建一个映射中间人文本线和一批:

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

除了耶的回答,如果你真的想要一个Python列表,你应该这样做的,例如:

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