标标题似乎有点不可思议,但这里是我需要在Python做:如何定义列表/数组在Python
假设我有一个列表(L)和一个布尔阵列( A)
L=[1,2,3,4]
A=[True, False, True]
我需要创建将有L,其中A是真与假,其中A是假的名单,即
[[1,2,3,4], False, [1,2,3,4]]
我考虑做这样的事情
L and A
但它似乎不工作,因为L不是我想要的标量。
有什么办法可以将L定义为标量,并用一行代码来完成它?
谢谢。
标标题似乎有点不可思议,但这里是我需要在Python做:如何定义列表/数组在Python
假设我有一个列表(L)和一个布尔阵列( A)
L=[1,2,3,4]
A=[True, False, True]
我需要创建将有L,其中A是真与假,其中A是假的名单,即
[[1,2,3,4], False, [1,2,3,4]]
我考虑做这样的事情
L and A
但它似乎不工作,因为L不是我想要的标量。
有什么办法可以将L定义为标量,并用一行代码来完成它?
谢谢。
你可以使用列表理解:
[L if i else False for i in A ]
这里做一个非常简单的方法:
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]
map(lambda x: L if x else False, A)
顾客服务:L
和A
不是标量。您可以使用一个标量,它遍历A并返回一个包含L
的向量,其中标量为True
并包含False
,其中它是False
。
使用列表理解:
[L if a else False for a in A] # a is the scalar here.
使用map(...)
:
map(lambda a: L if a else False, A)
使用for
声明:在什么语言
returnVector = A[:] # returnVector is the intended output vector
for index, a in enumerate(A): if a is True: returnVector[index] = L
代码? – uba 2013-03-08 05:51:43
Python,遗憾的是错过了。 – jazzblue 2013-03-08 06:03:51