【发布时间】:2015-12-15 03:21:31
【问题描述】:
我想知道是否可以在列表项中包含逻辑运算符 OR。例如:
CHARS = ['X','Y','Z']
把这行代码改成这样:(我知道这不是正确的方法)
谁能帮帮我?
CHARS = ['X','Y','Z','X OR Y','Y OR Z','X OR Z']
示例代码:
import numpy as np
seqs = ["XYZXYZ","YZYZYZ"]
CHARS = ['X','Y','Z']
CHARS_COUNT = len(CHARS)
maxlen = max(map(len, seqs))
res = np.zeros((len(seqs), CHARS_COUNT * maxlen), dtype=np.uint8)
for si, seq in enumerate(seqs):
seqlen = len(seq)
arr = np.chararray((seqlen,), buffer=seq)
for ii, char in enumerate(CHARS):
res[si][ii*seqlen:(ii+1)*seqlen][arr == char] = 1
print res
如果发生则先扫描检测X,然后奖励1,然后检测Y,最后检测Z。
输出:
[[1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1]
[0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1]]
包含逻辑或后的预期输出:
[[1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1]
[0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1]]
【问题讨论】:
标签: python arrays list numpy logical-operators