Python 查找并打印列表中元素的索引(字符串)
我试图在列表(字符串)中找到一个元素,然后打印索引。这是我的密码:Python 查找并打印列表中元素的索引(字符串),python,Python,我试图在列表(字符串)中找到一个元素,然后打印索引。这是我的密码: def checkLen(): days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] position = 0 for i in days: if i == "Monday": position = i print("Found it") print(pos
def checkLen():
days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
position = 0
for i in days:
if i == "Monday":
position = i
print("Found it")
print(position)
但我得到的结果是:
Found it
Monday
我发现,与我所知道的其他编程语言不同,Python变量类型可以更改,这就是数字类型“position”更改为“str”的原因,如何将索引保存在位置?使用。它返回位置和项目:
def checkLen():
days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
for position, day in enumerate(days):
if day == "Monday":
print("Found it")
print(position)
你不需要重复这些日子。只需在中使用
,如果找到它,则索引
列表有一个索引功能:
days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
print(days.index("Monday"))
请注意,如果该项不在列表中,但执行速度比在列表上循环快,则这将引发异常,尤其是在列表较长的情况下
然而,它只会给你第一个索引,所以如果有重复的,你必须使用其他方法来找到它们
阅读的好资源是
正如Frerich Raabe所指出的
在python中,大多数人倾向于编写代码,假设您正在查找的内容在那里(即列表中有您试图查找的元素),并捕获引发的异常(引发的异常是ValueError)
当您知道应该引发的特定异常时,尽量不要使用常规异常,因为对于更复杂的代码,如果另一个函数调用失败,则很难找到其他问题。列表中有一个索引方法,您可以使用
def checkLen():
days = ["Monday", "Tuesday", "Wednesday", "Thursday" "Friday", "Saturday", "Sunday"]
try:
position = days.index("Monday")
print("Found it")
except ValueError:
position = None # or 0 if you want
print("Not present")
print(position)
如果星期一不在中,这将产生错误list@OjonugwaOchalifu你能解释一下吗:D我仍然是指我的原始代码。先生,你是正确的。要使用你的代码,你需要增加循环中的位置。你可以用另一种方法来做这件事,那就是对于I,枚举中的天(天):
如果您扩展您的答案,指出在Python中,人们通常“请求原谅,而不是许可”,即您宁愿尝试获取索引并捕获任何错误,也不愿首先检查元素是否包含。
def checkLen():
days = ["Monday", "Tuesday", "Wednesday", "Thursday" "Friday", "Saturday", "Sunday"]
try:
position = days.index("Monday")
print("Found it")
except ValueError:
position = None # or 0 if you want
print("Not present")
print(position)