gpt4 book ai didi

Python 列表理解返回列表的边缘值

转载 作者:太空狗 更新时间:2023-10-30 00:30:43 25 4
gpt4 key购买 nike

如果我在 python 中有一个列表,例如:

stuff = [1, 2, 3, 4, 5, 6, 7, 8, 9]

长度为 n(在本例中为 9),我有兴趣创建长度为 n/2(在本例中为 4)的列表。我想要原始列表中所有可能的 n/2 值集,例如:

[1, 2, 3, 4], [2, 3, 4, 5], ..., [9, 1, 2, 3]  

是否有一些列表理解代码可以用来遍历列表并检索所有这些子列表?我不关心列表中值的顺序,我只是想找到一种生成列表的巧妙方法。

最佳答案

>>> stuff = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
>>> n=len(stuff)
>>>
>>> [(stuff+stuff[:n/2-1])[i:i+n/2] for i in range(n)]
[[1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8], [6, 7, 8, 9], [7, 8, 9, 1], [8, 9, 1, 2], [9, 1, 2, 3]]
>>>

注意:以上代码是基于您的示例的假设

[1, 2, 3, 4], [2, 3, 4, 5], ..., [9, 1, 2, 3]  

如果您确实需要所有可能的值,则需要按照其他人的建议使用 itertools.permutations 或组合函数。

关于Python 列表理解返回列表的边缘值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2643209/

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