list.index(x, [start[, end]])
题目
代码
#/sur/bin/nve python
# coding: utf-8
#题目一
number = int(input('\n\n输入待查找数字:'))
n = int(input('\n\n输入列表大小(正整数):'))
#列表输入
print()
number_list = [int(input('$>>')) for i in range(int(n))]
#查找数字
temp = []
for i in number_list[:]:
if i==number:
temp.append(number_list.index(i))
print()
print('﹊'*21)
s = f'''
数字列表:
{number_list}
“{number}”所在位置:{temp}
'''
print(s)
运行效果
😭😭没有出正确的结果!!!每次都输出了第一次出现的位置。
🧐🧐因为list.index()本就如此。
得,只有另寻他法了……
修改查找代码,完成了题目输出,但却没有按题目要求用list.index(x)查找。🥴🥴
for i in range(len(number_list)):
if number_list[i]==number:
temp.append(i)
看原题答案……
看不懂x = list1.index(check, start)这一行。😂😂只能再想想了……
想破头,不解。只有照抄代码一途🧐
#查找数字
#照搬题目答案代码
temp = []
start = 0
while True:
try:
x = number_list.index(number, start)
temp.append(x)
start = x+1
except:
break
输出正确!
我不甘心,继续找……🧐🧐
终于找到!😁😁
其实list.index(x, [start[, end]])才是list.index()完整的用法。
该完整用法来源:Python List index()函数
速度!改我的代码去……😊😊
修改后的查找代码
temp = []
start = 0
for i in number_list[:]:
if i==number:
temp.append(x := number_list.index(number, start))
#使用海象运算符 := 给x赋值,代码只能run于python 3.9x
#注意:start和end不可同时存在,都在,跟没有end等价
start = x+1
运行效果
用for也可以。😊😊
但要注意——
start和end不可同时存在。都在,跟没有end等价。
上一篇: CSDN2021-11-23“每日一练”
下一篇: 复习:python中的字符串格式化
![老齐漫画头像](https://i-blog.csdnimg.cn/blog_migrate/8cbf2c45d8b57205b31ef4963b3b9854.jpeg)
精品文章:
来源:老齐教室