我有:
name = ["a","a","b","c","a","b","c","d","d","e","e","f"]
并且我想要索引号为"a"
。
for i in range(0,len(name)):
a = name.index("a",i,len(name))
print(a)
0
1
4
4
4
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-29-db6d8b18d6e6> in <module>
1 for i in range(0,len(name)):
----> 2 a = name.index("a",i,len(name))
3 print(a)
ValueError: 'a' is not in list
我收到此错误。
答案 0 :(得分:3)
name = ["a","a","b","c","a","b","c","d","d","e","e","f"]
i = 0 # used to store index
for n in name:
if n == 'a':
print(i) # print the index of found value
i += 1
$ name = ["a","a","b","c","a","b","c","d","d","e","e","f"]
$ [i for i, v in enumerate(name) if v == "a"]
[0, 1, 4]
i, v
分别是名称列表中的索引和值
for i in range(0,len(name)):
if "a" in name[i:]: # added an if statement to check if a exist in the sublist
a = name.index("a",i,len(name))
print(a)
让我们来看看列表的索引功能会发生什么。
index(...) method of builtins.list instance
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
我们可以看到列表包含value
,其中包含2个可选参数start
和stop
start
和stop
检查给定列表L
的子列表。如果L
中不存在该值,那么我们将得到一个索引错误。例如,给定您的代码:
name = ["a","a","b","c"]
for i in range(0,len(name)):
a = name.index("a",i,len(name))
print(a)
index
将按此顺序为每个子列表寻找"a"
第三个列表将返回错误,因为列表中不再包含"a"
。
答案 1 :(得分:0)
您可以遍历字符串:
name = ["a","a","b","c","a","b","c","d","d","e","e","f"]
idx = [i for i in range(len(name)) if name[i] == 'a']
print(idx)
输出
[0, 1, 4]
答案 2 :(得分:0)
如果要在列表中包含元素的所有索引,则可以使用以下方法:
location.href
输出:
name = ["a","a","b","c","a","b","c","d","d","e","e","f"]
indices = [iter for iter,item in enumerate(name) if item=="a"]
print(indices)
答案 3 :(得分:0)
index函数从列表的开头搜索给定的元素,并返回该元素出现的最低索引。
list.index()函数在找不到时返回错误
开始(可选)-搜索开始的位置。 end(可选)-搜索结束的位置。
len(name)是12 循环运行函数name.index(“ a”,5,12)时出现错误。 并且在此范围内,列表中没有“ a”字符。您可以使用try catch处理错误
for i in range(0, len(name)):
try:
a = name.index("a", i, len(name))
print(a)
except ValueError as err:
print(err)
答案 4 :(得分:-1)
您可以使用枚举和if语句:
name = ["a","a","b","c","a","b","c","d","d","e","e","f"]
for i in enumerate(name):
if i[1]=="a": print(i[0])