如何在Python中将列表/数组定义为标量

2 投票
4 回答
1804 浏览
提问于 2025-04-17 18:22

标题可能有点奇怪,但我在Python中需要做的事情是这样的:

假设我有一个列表(L)和一个布尔数组(A),也就是一个只包含真(True)和假(False)的数组。

L=[1,2,3,4] 
A=[True, False, True]

我需要创建一个新的列表,这个列表在A为真时包含L的元素,而在A为假时则包含假,也就是:

[[1,2,3,4], False, [1,2,3,4]]

我在想可以做类似这样的操作:
L and A
但是这样似乎不行,因为L并不是我想要的单一值(标量)。

有没有办法把L定义为单一值,并用一两行代码实现这个功能呢?

谢谢。

4 个回答

1

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们写的代码有bug,或者是因为我们使用的工具和环境不兼容。

当你在网上寻找解决方案时,像StackOverflow这样的网站就非常有用。这里有很多程序员分享他们的经验和解决方案,你可以通过搜索找到类似的问题和答案。

如果你在使用某个特定的编程语言或工具时遇到问题,记得详细描述你的情况,比如你用的是什么版本,出现了什么错误信息,这样其他人才能更好地帮助你。

总之,遇到问题时,不要着急,先冷静下来,仔细检查你的代码和环境,然后再去寻找解决方案。

map(lambda x: L if x else False, A)
2

这里有一个很简单的方法来实现这个:

newList = []
for x in A:
   if x is True:
       newList.append(L)
   else: 
       newList.append(False)

不过因为你想要简洁,这里有一个一行代码的写法:

[L if x else x for x in A]
4

你可以使用列表推导式:

[L if i else False for i in A ]

撰写回答