gpt4 book ai didi

python - 将列表中的元素除以 2 的幂并维护列表

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

我有一个对象列表:

class learn:
def __init__(self, data):
self._data = data

myList = []
obj1 = learn(6)
obj2 = learn(8)
obj3 = learn(14)
obj4 = learn(16)
obj5 = learn(21)

myList.append(obj1)
myList.append(obj2)
myList.append(obj3)
myList.append(obj4)
myList.append(obj5)

现在我想保留列表中的元素(不丢失它们)并将 2 个元素的幂除以 2。

如果没有循环,我就无法实现这一点,我研究了过滤器,但我一直在丢失元素。

预期输出是学习对象的新列表[obj(4)、obj(8)、obj(6)、obj(14)、obj(21)]

最佳答案

myList1(如果您想要学习 Obj 列表)和 myList2(如果您想要整数列表)

def is_power2(num):
return num != 0 and ((num & (num - 1)) == 0)

List1 = list(filter(lambda x: is_power2(x._data), myList))
List2 = list(filter(lambda x: not is_power2(x._data), myList))
List1 = [learn(o._data/2) for o in List1]
myList1 = List1 + List2
myList2 = [o._data for o in List1]

关于python - 将列表中的元素除以 2 的幂并维护列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41839635/

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