如何在 python 列表中返回与输入数字相同的数字的位置?
要在 Python 列表中找到与输入数字相同的数字的位置,可以使用以下方法:
list.index()
如果数字在列表中只出现一次,可以使用 list.index() 方法:
lst = [10, 20, 30, 40, 20] num = 20 # 返回第一个匹配数字的位置 position = lst.index(num) print(f"The number {num} is at position {position}")
输出:
The number 20 is at position 1
注意: - 如果数字不在列表中,index() 会引发 ValueError。
index()
ValueError
如果数字在列表中可能出现多次,可以用列表解析找到所有出现的位置:
lst = [10, 20, 30, 40, 20] num = 20 # 返回所有匹配数字的位置 positions = [i for i, x in enumerate(lst) if x == num] print(f"The number {num} is at positions {positions}")
The number 20 is at positions [1, 4]
filter()
使用 filter() 和 enumerate():
enumerate()
lst = [10, 20, 30, 40, 20] num = 20 # 获取所有匹配数字的位置 positions = list(filter(lambda x: lst[x] == num, range(len(lst)))) print(f"The number {num} is at positions {positions}")
结合以上方法,添加检查,防止数字不在列表中导致异常:
lst = [10, 20, 30, 40, 20] num = 50 # 检查数字是否存在 positions = [i for i, x in enumerate(lst) if x == num] if positions: print(f"The number {num} is at positions {positions}") else: print(f"The number {num} is not in the list.")
The number 50 is not in the list.