gpt4 book ai didi

python - 如何在没有numpy的情况下在python中每次打印跳过一个元素的列表?

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

给定

samplelist = [100,101,102,103,104,105,106,107,108,109]

然后我想要如下输出:

[100,[101,102,103,104,105,106,107,108,109]]
[101,[100,102,103,104,105,106,107,108,109]]
[102,[100,101,103,104,105,106,107,108,109]]

注意:在第一行输出 100 被跳过,即 list[0],然后在第二行 list[1] 被跳过。

我试过弹出和显示,但下次它没有显示所有弹出的元素。所以我再次尝试将它们插入循环结束,但没有成功。

最佳答案

一个简单的列表推导式就可以了

>>> samplelist = [100,101,102,103,104,105,106,107,108,109]
>>> [[el for el in samplelist if el is not i] for i in samplelist]
[[101, 102, 103, 104, 105, 106, 107, 108, 109],
[100, 102, 103, 104, 105, 106, 107, 108, 109],
[100, 101, 103, 104, 105, 106, 107, 108, 109],
[100, 101, 102, 104, 105, 106, 107, 108, 109],
[100, 101, 102, 103, 105, 106, 107, 108, 109],
[100, 101, 102, 103, 104, 106, 107, 108, 109],
[100, 101, 102, 103, 104, 105, 107, 108, 109],
[100, 101, 102, 103, 104, 105, 106, 108, 109],
[100, 101, 102, 103, 104, 105, 106, 107, 109],
[100, 101, 102, 103, 104, 105, 106, 107, 108]]

基本上它会扫描列表并为每个元素生成除当前元素之外的整个列表。

或者,您可以使用生成器表达式

>>> g = ([el for el in samplelist if el is not i] for i in samplelist)
>>> for x in g:
... print(x)
...
[101, 102, 103, 104, 105, 106, 107, 108, 109]
[100, 102, 103, 104, 105, 106, 107, 108, 109]
[100, 101, 103, 104, 105, 106, 107, 108, 109]
[100, 101, 102, 104, 105, 106, 107, 108, 109]
[100, 101, 102, 103, 105, 106, 107, 108, 109]
[100, 101, 102, 103, 104, 106, 107, 108, 109]
[100, 101, 102, 103, 104, 105, 107, 108, 109]
[100, 101, 102, 103, 104, 105, 106, 108, 109]
[100, 101, 102, 103, 104, 105, 106, 107, 109]
[100, 101, 102, 103, 104, 105, 106, 107, 108]

根据您的新要求进行编辑(即必须包含跳过的元素):

>>> g = ([i, [el for el in samplelist if el is not i]] for i in samplelist)
>>> for x in g:
... print(x)
...
[100, [101, 102, 103, 104, 105, 106, 107, 108, 109]]
[101, [100, 102, 103, 104, 105, 106, 107, 108, 109]]
[102, [100, 101, 103, 104, 105, 106, 107, 108, 109]]
[103, [100, 101, 102, 104, 105, 106, 107, 108, 109]]
[104, [100, 101, 102, 103, 105, 106, 107, 108, 109]]
[105, [100, 101, 102, 103, 104, 106, 107, 108, 109]]
[106, [100, 101, 102, 103, 104, 105, 107, 108, 109]]
[107, [100, 101, 102, 103, 104, 105, 106, 108, 109]]
[108, [100, 101, 102, 103, 104, 105, 106, 107, 109]]
[109, [100, 101, 102, 103, 104, 105, 106, 107, 108]]

关于python - 如何在没有numpy的情况下在python中每次打印跳过一个元素的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194974/

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