簡體   English   中英

如何將整數的多個副本插入列表的中間?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM