如何编写接受列表和数字 X 的函数。如果 X 存在于索引“m”的列表中,它应该 return 来自索引“m”的列表元素的总和

How to write function that take a list and number X .If X exist in list in index ‘m’, it should return sum of elements of list from index ‘m’

def func(x):
    lst=list(map(int,input("Enter a list of numbers: ").split()))
    flag=0
    num=0
    for i in lst:
         if x==i:
                flag=1
                
    if flag==1:
        ab=lst.index(x)
        for i in range(ab,len(lst),1):
            num=lst.index(ab)
            num=num+lst[i]
            print(num)
    return num
        
    
y=input("Enter a number present in the list: ")
print(func(y)) 

以上是从索引 m 中查找所有数字和求和的函数。它从用户那里获取一个数字,获取索引并打印索引 m 中数字的总和。但是在这种情况下代码输出是0

尝试:

def func(y, lst):
    try:
        return sum(lst[lst.index(y):])
    except ValueError:
        print(f"{y} is not in {lst}")

lst = list(map(int,input("Enter a list of numbers: ").split()))
y = int(input("Enter a number present in the list: "))
total = func(y, lst)
print(total)

输出:

Enter a list of numbers: 10 20 30 40 50 60
Enter a number present in the list: 30
180

首先,你可以使用带空参数的split()

您的问题的解决方案是:

    def func(x):
    a=input("Enter list of Numbers: ")
    lst=list()
    for i in a:
        try:
            i=int(i)
            lst.append(i)
        except:
            pass
    num=0
    x=int(x)
    for i in (lst):
        if x==i:
            index=lst.index(x)
            for i in range(index,len(lst),1):
                num=num+lst[i]
    return num
        
        
    
y=input("Enter a number present in the list: ")
print(func(y)) 

而不是 map 我使用 for loop 将字符串转换为整数列表。 然后如果 x==i 我在列表中搜索 x 的索引,然后从索引开始使用 for loop.

再次对数字求和