在Python中,如何用值替换列表中的元素?

2024-09-29 23:28:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有:

 counts = [[2, 2, 2, 0], [2, 2, 1, 0]]
 countsminusone = [[1, 1, 1, -1], [1, 1, 0, -1]] #Which is counts - 1

对于每个值,其中countsminusone为0或小于0,我希望将其替换为1。在

^{pr2}$

然后用计数除以计数

Divide = [[n/d for n, d in zip(subq, subr)] for subq, subr in zip(counts, countsminusone)] #This should work if the above works

Tags: inwhichforiszipthiswork计数
2条回答

它是有效的,只是您忘记在最后一行中用countsminusone替换countsminusone1。在

countsminusone1 = [[1 if x <= 0 else x for x in pair] for pair in countsminusone]
Divide = [[n/d for n, d in zip(subq, subr)] for subq, subr in zip(counts, countsminusone1)]

我觉得你把事情弄得太复杂了。让我们用最简单的方式来说明你到底想做什么:

GOAL: Divide every number n in list of lists by n - 1 or, if n - 1 <= 0, by 1.

这可以在不创建额外列表和压缩的情况下完成:

counts = [[2, 2, 2, 0], [2, 2, 1, 0]]
divided = [[i / max(i - 1, 1) for i in sublst] for sublst in counts]

注意,在这种情况下,max(i - 1, 1)将始终为1。在

相关问题 更多 >

    热门问题