如何在函数python中找到列表的索引

How can I find an index of list in function python

提问人:hosein moradi.k 提问时间:10/28/2023 最后编辑:mkrieger1hosein moradi.k 更新时间:10/29/2023 访问量:50

问:

我在我的项目中制作了许多函数,在一个函数中,我需要找到另一个列表的一个列表的索引,但它没有执行并显示错误。

def name():
    Name = []    
    while True:
        Name.append(input('<Department Electricity,District 1,Tehran>\n Hello dear customer\n enter your name: '))
        if input('press s to stop: ') == 's':
            break
    return Name

def expense(get_name):
    expense = []
    for x in get_name:
       expense.append(int(input(f' dear {x} insert your monthly electricity expense: ')))
    return expense

def average(Expense):
    avg = sum(Expense) / len(Expense)
    return avg

def result(name, expense, average):   
    for x in expense:        
        if x > average:
            index = expense.index[x]         
            print(name[index], 'is high expense')
     
Name = name()
Expense = expense(Name)
result(Name, Expense, average(Expense))
  
Python 列表 函数 索引

评论

1赞 mkrieger1 10/28/2023
它显示了什么错误?
0赞 treuss 10/28/2023
使用怎么样?for index, x in emumerate(expense):
0赞 treuss 10/28/2023
并且不要使名称过载。 既是函数的名称,又是要结果的参数。expense
0赞 NoDakker 10/28/2023
看起来您想使用 expense.index(x) 而不是 expense.index[x]
0赞 Codist 10/28/2023
看一看: docs.python.org/3/library/exceptions.html#TypeError

答:

0赞 Hossein Koofi 10/28/2023 #1

您不必在“result”函数中对每个循环使用。 确保您也能够使用常规的 for 循环。

def result(name, expense, average):   
    for i in range(len(expense)):        
        if expense[i] > average:        
            print(name[i], 'is high expense')
-1赞 Arthur 10/29/2023 #2

in result 函数 u 使用 expense.index[x],但 expense.index 不是一个列表,而是 s 函数,所以 使用 expense.index(x)

评论

0赞 Community 10/30/2023
您的答案可以通过其他支持信息进行改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。