標標題似乎有點不可思議,但這裏是我需要在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