-11

我想编写一个函数,它接受三个参数 - 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

4 回答 4

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]
于 2013-10-15T19:25:12.350 回答
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()功能也很友好。

于 2013-10-15T19:19:06.223 回答
0

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


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

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

它的作用是:它将列表中的元素type1index(包含)变为index(排除),并用给定的列表替换它们。由于切片为空,实际上没有替换任何元素,但第二个列表插入到该位置。

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

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

这采用type1up to index(排除)的元素并将它们与from 和from开始(包括)type2的元素连接起来。type1index

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

[21, 32, 'f', 'g', 'c', 23]
于 2013-10-15T19:20:03.840 回答
0

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

于 2013-10-15T19:17:42.743 回答