擅长:python、mysql、java
<p>您可以将其推广到一个可工作任意数周的函数,例如:</p>
<pre><code>week1, week2, week3 = '1------', '--3-5--', '---4--6-'
def bitor_weeks(*args):
days = set().union(*args).difference('-')
return ''.join(ch if ch in days else '-' for ch in '1234567')
print bitor_weeks(week1, week2, week3)
</code></pre>
<hr/>
<p>或者对整个hog启用所有按位操作,例如:</p>
<pre><code>class WeekSet(set):
def __init__(self, *args):
days = set().union(*args).difference('-')
if days.difference('1234567-'):
raise ValueError('inputs must be 1-7 or -')
set.__init__(self, days)
def __repr__(self):
return ''.join(ch if ch in self else '-' for ch in '1234567')
week1, week2, week3 = '1------', '--3-5--', '-2-4--7'
t1 = WeekSet(week1, week2)
# 1-3-5--
print WeekSet('456') & t1
# ----5--
</code></pre>