Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用list和integer作为参数编写函数以返回list元素_Python - Fatal编程技术网

Python 如何使用list和integer作为参数编写函数以返回list元素

Python 如何使用list和integer作为参数编写函数以返回list元素,python,Python,我正在解决一个问题,需要定义一个函数(get\u element),该函数接受两个参数(一个列表和一个整数),然后使用提供的整数作为索引位置值,按其索引位置返回列表元素 我得到了一个列表(more_elements=[“sala”,33,3.14,[“dog”,“cat”,“fish”,19,18])来测试我的函数 def get_element(a_list, a_int): for a_int in a_list: int(a_int) return a_li

我正在解决一个问题,需要定义一个函数(
get\u element
),该函数接受两个参数(一个列表和一个整数),然后使用提供的整数作为索引位置值,按其索引位置返回列表元素

我得到了一个列表(
more_elements=[“sala”,33,3.14,[“dog”,“cat”,“fish”,19,18]
)来测试我的函数

def get_element(a_list, a_int):
    for a_int in a_list:
        int(a_int)
    return a_list[a_int]
这就是我当前的代码。然而,当我尝试运行它时,我得到一个错误
invalid literal for int(),以10为基数:“sala”


我不确定这个错误是什么意思。我做错了什么?

以下是手动操作的方法:

get\u元素(一些\u列表,一些\u索引):
如果某些指数<0:
some_index=some_index+len(some_列表)
i=0
对于某些列表中的元素:
如果i==某个_索引:
返回元素
i+=1
打印(“索引超出范围”)
返回
但通常不需要函数,因为可以通过索引直接获取列表中的任何元素:

some_元素=some_列表[some_索引]
此外,您在这里犯了一个错误:

def get_元素(一个_列表,一个_int):
对于\u列表中的\u int:

您正在迭代列表中已定义为参数的
a_int
,您需要使用不同的变量进行迭代。

正如我从您的描述中理解的:

def get_element(list_of_element, element_index):
    try:
        return list_of_element[element_index]
    except IndexError:
        return 'index out of range'

# Call your function
print(get_element(["salad", 33, 3.14, ['dog','cat'], "fish", 19, 18], 12))  # Change the 12 by the index you want. 

对于问题的解决方案,您不需要For循环,因为您的返回调用已经满足了需求


发生此错误的原因是您试图将字符串('sala')转换为数字,该数字在以10为基数的空格中不起作用;)。基本上,您现在使用for循环的方式是在“a_列表”上进行迭代(循环),并尝试将每个元素转换为整数,但对于该列表中的大多数字符串和列表,这很可能会失败

是的,但我需要为它写一个函数。这是一个家庭作业。我编辑了答案,加入了手工操作的方法,希望能有所帮助。这似乎是一个家庭作业问题。请在“询问家庭作业”下阅读。我很感激你努力编写自己的代码,但你似乎一点也不了解它是如何工作的。如果不是作业,我会说是的,这正是我要说的!还有一点值得注意的是,对a_int in…执行
将覆盖
a_int
参数。为什么要捕获
索引器
?如果给定索引大于列表长度,这将引发
索引器
异常,不是吗?是的,但为什么要捕获它而不是让它传播?