3 回答
TA贡献1772条经验 获得超8个赞
使用 zip 函数压缩然后像这样解压缩
a = ['E', 'E', 'E', 'E', 'E', 'E', 'E', 'C', 'C', 'C']
b = ['C', 'C', 'E', 'E', 'E', 'E', 'E', 'C', 'E', 'C']
a, b = zip(*[(ai, bi) for ai, bi in zip(a,b) if ai=="E"])
print(a)
print(b)
输出
('E', 'E', 'E', 'E', 'E', 'E', 'E')
('C', 'C', 'E', 'E', 'E', 'E', 'E')
TA贡献1869条经验 获得超4个赞
简单的itertools.takewhile功能:
from itertools import takewhile
a = ['E', 'E', 'E', 'E', 'E', 'E', 'E', 'C', 'C', 'C']
b = ['C', 'C', 'E', 'E', 'E', 'E', 'E', 'C', 'E', 'C']
a_slice = list(takewhile(lambda x: x == 'E', a))
b_slice = b[:len(a_slice)]
print(a_slice) # ['E', 'E', 'E', 'E', 'E', 'E', 'E']
print(b_slice) # ['C', 'C', 'E', 'E', 'E', 'E', 'E']
TA贡献1719条经验 获得超6个赞
尝试这个
a = [x for x in a if x == 'E']
indexes = [i for i, x in enumerate(a) if x == "E"]
b = [b[i] for i in indexes]
添加回答
举报
