gpt4 book ai didi

python - 删除列表中所有非质数元素

转载 作者:太空宇宙 更新时间:2023-11-04 07:36:59 28 4
gpt4 key购买 nike

我在 python 中有一个列表 m,我想删除 m 中所有与之前所有元素都不互质的元素。因此,如果 m=[2,3,4] 我希望输出为 [2,3]

我尝试遍历 m 的值,但它不起作用,因为 m 的大小发生变化,然后索引值超出范围。

最佳答案

您可以使用 enumerateany在列表理解中并使用 fractions.gcd 函数获取每对的 gcd:

>>> from fractions import gcd
>>> [j for i,j in enumerate(m) if not any(gcd(j,t)!=1 for t in m[:i])]
[3, 100, 7, 11, 17]

正如@mgilson 在评论中提到的,作为一种更有效的方式,而不是在 any 中进行简单切片,您可以使用 itertools.islice 函数。

关于python - 删除列表中所有非质数元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32589290/

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