簡體   English   中英

在 Python 中以單行方式將多個項目從一個列表移動到另一個列表

[英]Moving multiple items from one list to another in single line in Python

我想將多個項目從一個列表移動到另一個列表。
這些項目將從第一個列表中刪除並插入到第二個列表的末尾。
項目的價值是未知的,但項目的索引是已知的。
我想在一行代碼中做到這一點。
下面的代碼做了我想要的,但不是一行代碼:

listOne = [0, 1, 2, 3, 4, 5]
listTwo = [6, 7, 8, 9, 10]

listTwo = listTwo +listOne[0:2]
listOne = listOne[2:]

有沒有一種干凈的方法可以將函數(如 pop()、inser() 等)相互結合使用?

你可以做這樣的東西

listOne = [0, 1, 2, 3, 4, 5]
listTwo = [6, 7, 8, 9, 10]

# Must respect this criteria : 0 <= X < Y <= len(listOne)
Y = 2
X = 0

listTwo.extend([listOne.pop(X) for _ in range(Y-X)])
print(listTwo) # [6, 7, 8, 9, 10, 0, 1]
print(listOne) # [2, 3, 4, 5]

基於jarmod 注釋的更正

您可以將解決方案本身放在一行 -

listOne = [0, 1, 2, 3, 4, 5]
listTwo = [6, 7, 8, 9, 10]
listTwo, listOne = listTwo +listOne[0:2], listOne[2:]

print(listTwo)
# [6, 7, 8, 9, 10, 0, 1]
print(listOne)
# [2, 3, 4, 5]

暫無
暫無

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

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