給定一個列表,z = [1, 5, 10, 100, etc...] 想要獲取列表中項目的位置,而不是使用列表表達式而不是其他方法獲取項目的值。我知道三個選項:[1] 使用 range 和 length 函數 for i in range(len(z)): [2] 使用 enumerate 函數并省略值 answer = [i for i,v in enumerate(z)] [3] 將 range 和 len 函數放在列表表達式中b = [i for i in range(len(z))]...總之,是否有一個函數可以替換enumerate或range(len())僅返回索引而不必丟棄v。# example listz = [1, 20, 50, 100, 50]# using the range and len functionsfor i in range(len(z)): print(i)# the enumerate method (ignoring v)answer = [i for i,v in enumerate(z)]print(answer)# the range(len()) inside a list expressionanswer = [i for i in range(len(z))]print(answer)想要的答案:[0, 1, 2, 3, 4]
3 回答

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
沒有內置函數,您可以編寫自己的函數來替代使用您已經描述的方法。
def count(iterable):
c = 0
for _ in iterable:
yield c
c += 1
# TEST:
z = [1, 20, 50, 100, 50]
for i in count(z):
print(i)
結果是:
0
1
2
3
4
添加回答
舉報
0/150
提交
取消