gpt4 book ai didi

Python 列表理解镜像值

转载 作者:行者123 更新时间:2023-11-28 22:20:19 24 4
gpt4 key购买 nike

我试图通过列表理解来解决以下问题,但无法解决。我将向您展示我是如何使用循环和列表理解来解决这个问题的。

所以,我有一个列表,该列表可以在一个范围内包含 0 到 6 个元素(6),当我在其上应用我的函数时,我想更改值,如下所示:

l = [0, 1, 2, 3, 4, 5]
mirror = [5, 4, 3, 2, 1, 0]

我不想只将数组旋转 180 度,但实际上我想替换值。例如,我的列表现在看起来像这样:

l = [2, 5]

然后 l_inverted 列表应该是这样的:

l_inverted = [3, 0]

我想出了一个常规的方法来解决它,但自从我开始学习 Python 以来,我更喜欢列表理解。

l = [0, 3, 5]
mirror = [5, 4, 3, 2, 1, 0]
i = 0
for element in l:
l[i] = mirror[element]
i += 1

这实际上颠倒了 l 列表。这是我使用列表理解的方法:

l = [3, 5]
mirror = [5, 4, 3, 2, 1, 0]
for element in l:
print(element)
l = [mirror[element] if x==element else x for x in l]

这很好用。直到:

l = [0, 3, 5]
mirror = [5, 4, 3, 2, 1, 0]
for element in l:
print(element)
l = [mirror[element] if x==element else x for x in l]

所以它会将 5 替换为 0,将 2 替换为 3,并且两个 5(新的也是)都变为 0。显然,我不希望这样。

我应该坚持使用可行的解决方案,还是有一种使用列表推导式解决它的流畅方法?我一直在尝试练习列表理解,但它还没有完全进入我的大脑。非常感谢。

最佳答案

如果你想把它作为一个列表理解:

>> l = [0, 3, 5]
>> mirror = [5, 4, 3, 2, 1, 0]
>> l_inverted = [mirror[x] for x in l]
>> l_inverted
[5, 2, 0]

关于Python 列表理解镜像值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49034946/

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