[英]How do I insert multiple copies of an integer into the middle of a list?
我的任務是這樣的:
令L
為非負整數的列表。 寫一個表達式,用0
許多副本替換L
最中心元素。 請注意,此處的“最中心”是為奇數長度的列表定義的常用方法,但對於偶數長度的列表似乎有點不尋常。 因此,例如,如果L = [1, 2, 3, 4, 5]
,則L
的修改值將為[1, 2, 0, 0, 0, 4, 5]
,但如果L = [1, 2, 0, 3]
該修改值將是[1, 2, 3]
作為0
-這里的偶數長度列表的最中心元件-將具有0拷貝替換0
。
我想出的表情是
L[len(L)/2] = [0] * L[(len(L)/2)]
並且L = [1, 2, 3, 4, 5]
是
[1, 2, [0, 0, 0], 4, 5]
我需要消除該內部列表元素,以使零成為外部列表的一部分。 我們僅限於一行,沒有for / while循環。
正如@saulspatz建議使用切片:
middle = len(L) / 2
L = L[:middle] + ([0] * L[middle]) + L[middle + 1:]
從Python 2.3開始,可以分配給slices :
>>> L = [1, 2, 3, 4, 5]
>>> L[len(L)//2:len(L)//2 + 1] = [0] * L[(len(L)//2)]
>>> L
[1, 2, 0, 0, 0, 4, 5]
>>> L = [1, 2, 0, 3]
>>> L[len(L)//2:len(L)//2 + 1] = [0] * L[(len(L)//2)]
>>> L
[1, 2, 3]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.