找出列表中指定数值
不使用index()这个函数时,也可以用一个循环来找出指定元素的位置,传统的查找方式如下 :
lst = [1, 4, 7, 10, 23, 45, 67, 88]
target = int(input("请输入你要找的数字: "))
found = False
for i , number in enumerate(lst):
if number == target:
print("你要找的数字{}在数列中!".format(target))
print("数字{}在数列第{}个位置上".format(target, i))
found = True
break
if not found:
print("你要找的数字{}并不在数列中!".format(target))
请输入你要找的数字: 88
你要找的数字88在数列中!
数字88在数列第7个位置上
在这个程序中使用枚举enumerate()函数来逐一取出lst列表中的每一个元素并加上该元素相对应的索引值,每一个元素都和目标值target进行对比,如果找到了,就打印出该数字以及该数字所在的位置,接着设置found 变量为true, 并用break语句中断循环来执行。
在离开循环时,使用if 检查found这个变量是否为True,如果是,邮件里表示循环运行了一遍之后没有找到指定的数九寒天,此时就要显示信息说明指定的数九数字并不存在于数列中。
此种方式是以顺序的方式逐一寻找目标数列中的数字,最好的情况是每一次就找到了,最差的情况则是在所有的数字都找过一遍之后仍然找不到。所以,如果列表中有n个元素,则平均查找的次数应该是(n+1)/2次。