我想编写一个带有三个参数的函数 - 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
显然我在这里做错了,但我不确定是什么。
答案 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]