我有List = [0, 1, 2, 3]
并且我想给他们所有人分配一个数字,比如 5: List = [5, 5, 5, 5]
。我知道我可以List = [5] * 4
轻松做到。但我也希望能够将 6 分配给最后 3 个元素。
List = [5, 5, 5, 5]
YourAnswer(List, 6, 1, 3)
>> [5, 6, 6, 6]
YourAnswer
函数在哪里。
任何类似的东西都会有所帮助。最好避免 for 循环。但如果没有已知的可能性,请告诉我。
我有List = [0, 1, 2, 3]
并且我想给他们所有人分配一个数字,比如 5: List = [5, 5, 5, 5]
。我知道我可以List = [5] * 4
轻松做到。但我也希望能够将 6 分配给最后 3 个元素。
List = [5, 5, 5, 5]
YourAnswer(List, 6, 1, 3)
>> [5, 6, 6, 6]
YourAnswer
函数在哪里。
任何类似的东西都会有所帮助。最好避免 for 循环。但如果没有已知的可能性,请告诉我。
您实际上可以使用切片分配机制来分配给列表的一部分。
>>> some_list = [0, 1, 2, 3]
>>> some_list[:1] = [5]*1
>>> some_list[1:] = [6]*3
>>> some_list
[5, 6, 6, 6]
如果您要更新同一个列表,这很有用,但如果您想创建一个新列表,您可以简单地根据您的条件通过连接创建一个新列表
>>> [5]*1 + [6]*3
[5, 6, 6, 6]
你可以把它包装成一个函数
>>> def YourAnswer(lst, repl, index, size):
lst[index:index + size] = [repl] * size
>>> some_list = [0, 1, 2, 3]
>>> YourAnswer(some_list, 6, 1, 3)
>>> some_list
[0, 6, 6, 6]
In [138]: def func(lis,x,y,z):
.....: return lis[:y]+[x]*z
.....:
In [139]: lis=[5,5,5,5]
In [140]: func(lis,6,1,3)
Out[140]: [5, 6, 6, 6]
你可以使用 + 来实现它
def createList(val1, n1, val2, n2):
return [val1] * n1 + [val2]*n2