gpt4 book ai didi

python - 减去 boolean 列表

转载 作者:行者123 更新时间:2023-12-05 02:47:09 28 4
gpt4 key购买 nike

我有两个 boolean 值列表 buy_machinebroken_machine。我想创建第三个列表 working_machines,它是购买的机器数量的总和并减去坏机器的数量。

我尝试了以下代码,结果列表中充满了 'nothing' 我希望至少看到 'plus 1''minus 1 ',这只是为了尝试一些事情,我不知道如何实际制作 working_machines 列表来对 boolean 值求和或减去

years = list(range(1, 21))
buy_machine = []
broken_machine = []
working_machines = []
for year in years:
if year <= 5:
buy_machine.append(True)
else:
buy_machine.append(False)
if 10 % year == 10 and year <= 15:
broken_machine.append(True)
else:
broken_machine.append(False)
if buy_machine == True and broken_machine == False:
working_machines.append('plus 1')
elif buy_machine == False and broken_machine == True:
working_machines.append('minus 1')
else:
working_machines.append('nothing')
buy_machine
[True,
True,
True,
True,
True,
False,
False,
False,
False,
False,
False,
False,
False,
False,
False,
False,
False,
False,
False,
False]
broken_machine
[False,
False,
False,
False,
False,
False,
False,
False,
False,
False,
True,
True,
True,
True,
True,
False,
False,
False,
False,
False]
working_machines
['nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing',
'nothing']

想要的输出

working_machines
[1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0]

最佳答案

working_machines 只是以下列表中值的累加和:

>>> x = [a - b for a,b in zip(buy_machine, broken_machine)]
>>> x
[1, 1, 1, 1, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0]

(这是有效的,因为 TrueFalse 分别等于 10 boolint 的子类。)

您可以使用 itertools.accumulate 获取它。

>>> list(accumulate(x))
[1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0]

也就是说,对于每个索引 iworking_sums[i] = sum(x[:i])

关于python - 减去 boolean 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65134769/

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