Python使用索引声明函数

时间:2013-10-15 19:13:29

标签: python function python-3.x parameters

我想编写一个带有三个参数的函数 - type1type2index - 并且应该返回type1元素type2插入索引。

以下是一些示例I / O

do_something ([21, 32, 23], ['f', 'g', 'c'], 2)

[21, 32, 'f', 'g', 'c', 23]

这是我到目前为止所做的:

def do_something(type1, type2, index)

return do_something

显然我在这里做错了,但我不确定是什么。

4 个答案:

答案 0 :(得分:3)

我认为这可以回答你的问题并做你想做的事情:

def do_something(list1, list2, index):
    list1[index:index] = list2
    return list1

print(do_something([21, 32, 23], ['f', 'g', 'c'], 2))

输出:

[21, 32, 'f', 'g', 'c', 23]

答案 1 :(得分:1)

如果您的意思是您不确定如何通过索引访问列表,则使用索引访问运算符,即[]

>>> x = [1, 2, 3]
>>> x
[1, 2, 3]
>>> x[1] = 99
>>> x
[1, 99, 3]
>>> x[2] = [1,2,3]
>>> x
[1, 99, [1, 2, 3]]

互动口译员是你的朋友! dir(list)help()功能也很友好。

答案 2 :(得分:0)

索引不是一种特殊的参数。你会像其他任何东西一样传递它。你有什么是好的,但你必须弄清楚如何在def和return语句之间编写函数。看看文档,如果您对它们有具体问题,请回来,并展示您尝试过的内容。

答案 3 :(得分:0)

如果参数是列表的索引,那么“index”完全可以作为参数名称。 python中有一些你应该避免使用的名称,例如“list”或“str”,但“index”不是其中之一。如果您认为参数的含义不清楚,您可以随时向该函数添加注释或文档字符串。


对于函数体,您可以使用以下表示法将另一个列表插入到列表中:

def do_something(type1, type2, index):
    type1[index:index] = type2

这样做:它将列表type1的元素从index(包括)转移到index(不包括),替换为给出清单。由于切片为空,实际上没有元素被替换,但第二个列表是插入在该位置。

请注意,这将修改原始列表type1。使用它来创建并返回一个新列表:

def do_something(type1, type2, index):
    return type1[:index] + type2 + type1[index:]

这会将type1的元素归结为index(不包括),并将其与type2以及type1的元素从index连接起来(包括)。

在这两种情况下,结果都是

[21, 32, 'f', 'g', 'c', 23]