将字符串中两个"位图"的内容合并(逻辑或)

jpa*_*kal 1 python string bitmap logical-operators

我有两个包含工作日"位图"的字符串:例如,1------仅周一,--3-5--周三和周五,你明白了.

我想将这些与逻辑OR的等价物合并在一起,例如.1------|| --3-5--= 1-3-5--.最恐怖的方法是什么?我现在正在这样做,但感觉不是特别优雅:

week1, week2, merged = '1------', '--3-5--', ''
for i in range(0, len(week1)):
  merged += week1[i] if week1[i] != '-' else week2[i]
print merged
Run Code Online (Sandbox Code Playgroud)

请注意,我使用的是Python 2.7,因此没有可变字符串,并且可以安全地假设输入字符串始终是正确格式化的(=始终-用于false并且1..7在正确的位置用于true).

fal*_*tru 5

使用zip,生成器表达式条件表达式:

>>> ''.join(b if a == '-' else a for a, b in zip('1------', '--3-5--'))
'1-3-5--'
Run Code Online (Sandbox Code Playgroud)