簡體   English   中英

復制深層子列表的Python方式

[英]Pythonic way of copying deep sublists

我有一個深列表a=[[1, 2], 3] ,我想為其多次復制第一個列表的第一項以獲得[[1, 1, 1, 2], 3]

我的嘗試:

number_of_multiplications = 2
for _ in range(number_of_multiplications):
  a[0] = a[0][:1] + a[0]

問題:有沒有辦法做到這一點而無需循環?

獎勵:如何確定要復制的元素的深層副本而不是淺層副本?

a = [[1, 2], 3]
number_of_multiplications = 2
a[0] = [a[0][0]] * (number_of_multiplications + 1) + a[0][1:]
print(a)    # [[1, 1, 1, 2], 3]

我們在這里擁有的是第一階段[a[0][0]] * (number_of_multiplications + 1) (給出[1,1,1] )的列表乘法,以及第二階段[1,1,1] + a[0][1:]列表串聯[1,1,1] + a[0][1:] (其中a[0][1:]是關鍵子列表的其余條目的切片,位於a[0]

number_of_multiplications = 2
a = [[1, 2], 3]
a[0]=a[0][:1]*number_of_multiplications+a[0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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