在Python中同时定义几个变量

时间:2017-05-02 15:11:00

标签: python list function indexing

对于我的Python列表中的每个对象,我想定义一个整数,它是对象的第一个索引:

firstindex( some object ) = mylist.index( some object)

如何同时为所有对象制定这样的定义?

我试过这样做:

firstindex = []
i=1

while i < 100 :
    firstindex.append( mylist.index("i") )
    i=i+1

但它告诉我&#39;我&#39;不在列表中。但是,清单的格式为[1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,......]

3 个答案:

答案 0 :(得分:1)

您应该将代码更改为以下内容:

firstindex = []
i= 1

while i < 100 :
    firstindex.append( mylist.index(str(i)) )
    i=i+1

您之前的代码在列表中搜索了一个值为&#34; i&#34;这是字符串&#34; i&#34;。你想要搜索变量i的值,它是字符串&#34; 1&#34;然后&#34; 2&#34;然后&#34; 3&#34;等等。所以你应该只搜索str(i)的索引。

Str(i)返回i中的值的字符串。

答案 1 :(得分:1)

为什么不使用词典?

d = dict() # or d = {}
for i in range(100):
   d['firstindex_'+str(i)] = ""

这会创建一个大小为100的字典,所有值都为空字符串。您可以使用d [&#39; firstindex_0&#39;]到d [&#39; firstindex_99&#39;]来访问它。

答案 2 :(得分:0)

那是因为功能list.index(obj)返回列表中对象的索引。

>>> ["foo", "bar", "baz"].index("bar")
1

您的列表"mylist"是一个对象列表,可能不满足索引"i",即字符串