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)