name = ["a", "ying", "de", "san", "shi", "san"]
print(name.index("san"))
显示结果为3而不是5,因为"san"第一次出现在列表index为3的地方。
若不存在,比如你输入参数为"fuck",它会报ValueError。
Traceback (most recent call last):
File "C:\Users\阿莹的三石\Desktop\test.py", line 2, in
print(name.index("fuck"))
ValueError: 'fuck' is not in list
可以使用try except来避免退出
try:
print(name.index("fuck"))
except ValueError:
print("can not find member index")
由于try内部发生错误,会去执行except内部代码,程序会继续运行。
编写自己的*find_index()*方法:def find_index(src_list, target):
"""在给定集合中寻找目标所在索引"""
#用来存储目标索引的列表
dst_index_list = []
#在给定集合中挨个比对,若与目标匹配,保留索引
for index in range(len(src_list)):
if (src_list[index] == target):
dst_index_list.append(index)
#返回目标索引列表
return dst_index_list
name = ["a", "ying", "de", "san", "shi", "san"]
#调用函数,并将返回结果保存到列表中
name_san_index_list = find_index(name, "san")
#要对目标进行什么操作,这里仅仅是打印一下
if (len(name_san_index_list) == 0):
print("can not found member in list")
else:
print("find index in list")
print(str(name_san_index_list).rstrip("]").lstrip("["))
结果如下返回后将结果使用字符串格式打印出来,并去掉列表两边中括号:
find index in list
3, 5
实现方法很简单,就是一个一个比对,如果比对成功就记录索引,最后将记录的索引返回供后续使用,如果不存在也不会退出程序。本文只是将匹配到的打印一下,实际上可以全部替换为另一个字符串等等。
注意不要在find_index()内部修改原列表,默认传递是引用,内部修改了外边的列表也会改变。引用、指针什么的请参考
c语言,个人感觉c语言还是牛逼的,毕竟除了嵌入式啥的以外造轮子很强。