Python用索引声明函数

Python用索引声明函数,python,function,python-3.x,parameters,Python,Function,Python 3.x,Parameters,我想写一个函数,它接受三个参数-type1、type2和index,并且应该返回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 显然我在这里做错了什么,但我不确定是什么。索引不是

我想写一个函数,它接受三个参数-
type1
type2
index
,并且应该返回
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

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

索引不是一种特殊的参数。你会像其他事情一样把它传过去的。您所拥有的很好,但是您必须弄清楚如何在def和return语句之间编写函数。查看文档,如果您有具体问题,请返回文档,并展示您的尝试。

如果您不确定如何按索引访问列表,请使用索引访问操作符,即
[]

>>> 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()
函数也很友好。

如果参数是列表的索引,那么“index”作为参数名就非常合适。python中有一些名称应该避免使用,例如“list”或“str”,但“index”不是其中之一。如果您认为参数的含义不清楚,则始终可以向函数中添加注释或docstring


对于函数体,您可以使用以下符号在列表中插入另一个列表:

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]

我认为这回答了你的问题,并满足了你的要求:

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]

我不是有意粗鲁,但到目前为止,你所做的一切都是徒劳的。。。您刚刚编写了一个规范。您认为应该怎么做?如何在第二个列表的第i个和i+1个索引之间插入一个列表的元素@tobias_k。如何调用参数索引?在示例中调用函数时,第三个参数(2)与参数(索引)绑定。在修复语法问题(缺少冒号和缩进)后,它将很好地解析。现在,您必须对参数(以及它们命名的值)执行一些操作。如果关闭,不要创建一个新的匿名帐户,以便再次发布。此帐户与上一个有什么区别?它不调用
insert()
list2
嵌套在
list1
中的方法——相反,它有效地将
list2
的各个元素插入到指定索引处的
list1
中。小的更正:它实际上没有将元素插入
list1
,但创建一个新列表而不修改其中任何一个列表。;-)@托拜厄斯:挑剔,挑剔…;-)