[英]how to print even alphabet using numpy arrays with additional condition
import numpy as np
a=[1,2,3,4,5,6,7,8,9,10,11,12]
a=np.array(a)
b=['a','b','c','d','e','f','g','h','i','j','k','l']
b=np.array(b)
# conversion of both list to array
# want to print even alphabets except 'b'
print(b[a%2==0 and a!=2])
有什么問題and
條件並告訴我如何糾正它? 另外我想知道只打印替代的偶數字母 - ('d','h','l')
您的代碼中的主要問題是:
b[a%2==0 and a!=2]
這會引發ValueError
:
ValueError:包含多個元素的數組的真值不明確。 使用 a.any() 或 a.all()
並且一般沒有意義(您正在嘗試訪問某種b[True]
並應用於數組上的模數( %
)運算符......)。
我認為您要做的是在a
打印所有偶數,您可以這樣做:
[a[index] for index, x in enumerate(a) if a[index] % 2 == 0]
編輯:也許我誤讀了這個問題,因為它非常不清楚,但我認為你想要的是打印b
每個第 4 個元素,除了index =
1 中的實際元素b
:
>>> [b[i-1] for i in a if i % 4 == 0 and i != 1]
['d', 'h', 'l']
將 numpy 導入為 np
a=[1,2,3,4,5,6,7,8,9,10,11,12]
a=np.array(a)
b=['a','b','c','d','e','f','g','h','i','j','k','l' ]
b=np.array(b)
打印 (list(b[i-1] for i in a if i%4==0 and i!=1))
import string
np.array([*string.ascii_lowercase])[np.arange(26)%2 == 0]
返回:
array(['a', 'c', 'e', 'g', 'i', 'k', 'm', 'o', 'q', 's', 'u', 'w', 'y'],
dtype='<U1')
您可以使用以下內容替換 AND 條件以使用偶數數字打印字母:
print(b[(a%2==0) & (a!=2)])
也用於打印交替的偶數字母 ('d','h','I')
我不會寫代碼,但邏輯實現很簡單:
打印 b(索引 a%4==0)
還要忽略打印 'd' :
打印 b(索引 a%4==0 & 索引 a!=4)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.