对于我的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,......]
答案 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"
,即字符串