gpt4 book ai didi

python - 扩展列表中的元素

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:39 28 4
gpt4 key购买 nike

我正在寻找一种“不错”的方式来处理列表,其中一些元素需要扩展为更多元素(仅一次,结果没有扩展)。

标准的迭代方式是:

i=0
while i < len(l):
if needs_expanding(l[i]):
new_is = expand(l[i])
l[i:i] = new_is
i += len(new_is)
else:
i += 1

这很丑陋。我可以将内容重写到一个新列表中:

nl = []
for x in l:
if needs_expanding(x):
nl += expand(x)
else:
nl.append(x)

但是他们都显得太长了。或者我可以简单地做 2 次传递并稍后展平列表:

flatten(expand(x) if needs_expanding(x) else x for x in l)
# or
def try_expanding(x)....
flatten(try_expanding(x) for x in l)

但这也不“对”。

还有其他明确的方法吗?

最佳答案

你的最后两个答案是我会做的。虽然我不熟悉 flatten(),但如果您有这样的功能,那看起来很理想。您还可以使用内置的 sum():

sum(expand(x) if needs_expanding(x) else [x] for x in l, [])
sum(needs_expanding(x) and expand(x) or [x] for x in l, [])

关于python - 扩展列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2185822/

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