gpt4 book ai didi

python - 是否有一种基于索引将列表分成两部分的首选方法

转载 作者:行者123 更新时间:2023-12-01 00:43:02 28 4
gpt4 key购买 nike

例如,如果我有一个包含整数的列表

arr = [1,2,3,4,5,6]

我想根据特定索引将此列表拆分为两个列表。如果我指定索引 0,1 和 3,它应该返回包含已删除项目的旧列表和仅包含指定项目的新列表。

arr = [1,2,3,4,5,6]

foo(arr, "013"): # returns -> [3,5,6] and [1,2,4]

最佳答案

这是使用生成器函数的一种方法,即从输入列表中弹出元素,同时从函数中生成元素。

鉴于列表中的项目在迭代时被删除,因此有必要以相反的顺序对索引列表进行排序,以便输入列表中要删除的实际值的索引保持不变,而它的值正在被删除。

def foo(l, ix):
for i in sorted(list(ix), reverse=True):
yield l.pop(int(i))
<小时/>

通过调用该函数,我们可以获得已删除的值:

arr = [1,2,3,4,5,6]

list(foo(arr, "013"))[::-1]
# [1, 2, 4]

这些已从原始列表中删除:

print(arr)
# [3, 5, 6]

关于python - 是否有一种基于索引将列表分成两部分的首选方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57199293/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com