我有一個串列 L 和一些值 V。如果它們都不在串列中,則它通過了條件。至于另一邊,如果其中一個在串列中,它會通過另一個條件。
代碼應該是這樣的
If "none elements of" V in L:
print("OK")
If "one element of" V in L:
print("Not OK")
例如,我有以下串列:
L= [(3, 0), (3, 2), (3, 4)]
我想檢查陣列 v 中的值,例如:
V = [0,1]
有了這個 V 和這個 L,它應該列印“Not OK”,因為 0 在串列中。如果 V 類似于 V = [1,5] 它應該列印“OK”,因為 V 的所有元素都不在串列 L 中
我已經嘗試過 any(x in V for x in L)、[(x in L) for x in V] 和 [x for x in V if x in L] 并且無法進行任何作業(它總是給我“不好”)。
另外我想說我將使用大陣列(Len(V) 和 Len(L) 雖然非常大)所以我也想要最優化的方式來做到這一點
uj5u.com熱心網友回復:
您可以使用np.isin(). 此函式將回傳TrueL 中的任何 V 值。然后將結果求和如下:
import numpy as np
if np.isin(L, V).sum()>0:
print ('Not OK')
else:
print('OK')
uj5u.com熱心網友回復:
您可以通過展平元組串列并檢查方法中的成員來做到這一點。
if any(item in [j for i in L for j in i] for item in V):
print ('Not OK')
else:
print('OK')
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/515906.html
標籤:Python列表
