the_map = { 1:'a',0:'b'}
现在要生成a
和b
的8个模式,我们创建8位模式:
>>> range(8)
[0, 1, 2, 3, 4, 5, 6, 7]
# 001,010,011....111
如何将位映射到字符“a”和“b”,以接收如下输出:
['aaa','aab','aba'.......'bbb']
我在找一个高效的单班轮。我使用翻译或格式的方法在我看来有点低效:
>>> import string
>>> [bin(x)[2:].zfill(3).translate(string.maketrans('01','ab')) for x in xrange(8)]
['aaa', 'aab', 'aba', 'abb', 'baa', 'bab', 'bba', 'bbb']
除了可读性,这并不是一个很大的改进,但我认为新样式的格式可能更适合这里:
我想你在找^{} :
一个使用
map
的线性函数。当然不是绩效的提升,我想:我按你的例子中的3位数填写。请注意,您的问题将“1”映射到“a”,将“0”映射到“b”,而您的示例正好相反。你知道吗
相关问题 更多 >
编程相关推荐