gpt4 book ai didi

python - 将列表理解式转换为简单的 for 循环

转载 作者:行者123 更新时间:2023-11-30 21:58:19 25 4
gpt4 key购买 nike

我有一个列表理解,它返回所有可能排列的列表,因为输入包含所有唯一的数字。

nums = [1,2,3]
ans = [[]]
for x in nums:
ans = [items + [n] for items in ans for n in nums if (n not in items)]
print(ans)

> [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

我尝试为此编写 for 循环,如下所示:

nums = [1, 2, 3]
ans = [[]]

for x in nums:
for items in ans:
for n in nums:
if n not in items:
items.append(n)
print(ans)

但是,这并没有给我所需的输出。谁能帮我解决这个问题吗?

最佳答案

[items + [n] for items in ans for n in nums if (n not in items)]

让我们从右到左分解一下。

for items in ans:
for n in nums:
if n not in items:

然后您只需创建一个列表并在其中添加这些项目 + [n]

result = []
for items in ans:
for n in nums:
if n not in items:
result.append(items + [n])

现在整个事情正在另一个循环中执行 for x in nums。所以你有:

nums = [1,2,3]
ans = [[]]

for x in nums:
result = []
for items in ans:
for n in nums:
if n not in items:
result.append(items + [n])
ans = result

关于python - 将列表理解式转换为简单的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54963474/

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