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]
根据
更正
你可以把你的解决方案放在一行上 -
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]
我想将多个项目从一个列表移到另一个列表。
这些项目将从第一个列表中删除并插入到第二个列表的末尾。
项的值未知,但项的索引已知。
我想用一行代码来完成。
下面的代码完成了我想要的,但不是在一行代码中:
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]
根据
你可以把你的解决方案放在一行上 -
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]