这是我的previous question的扩展名,但顺序相反:即使用字符串-t-c-over----
,是否有办法生成所有有效字母都有1
的二进制列表和连字符有0
:
[0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0]
- t - c - o v e r - - - -
我为来回感到遗憾,但它必须像这样。
答案 0 :(得分:6)
>>> s = '-t-c-over----'
>>> lst = [0 if i == '-' else 1 for i in s]
>>> print lst
[0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0]
列表comp会检查字母是否为'-'
- 如果是,则会在列表中放置0
,否则会将1
放入。{/ p>
答案 1 :(得分:1)
您可以使用此
string = "-t-c-over----"
[0 if i == "-" else 1 for i in string]
Output: [0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0]
答案 2 :(得分:-1)
另一个选择是使用lambda函数和map函数。
s = '-t-c-over----'
output = map(lambda x: 0 if x == '-' else 1, s)
编辑:显然这在Python 3.2中不起作用,所以实际的解决方案就是这样。
s = '-t-c-over----'
output = [0 if x == '-' else 1 for x in s]