Python 从字符串到二进制列表

Python 从字符串到二进制列表,python,Python,这是my的一个扩展,但顺序相反:即使用字符串-t-c-over-->,是否有方法生成一个二进制列表,所有有效字母都有1,连字符都有0: [0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0] - t - c - o v e r - - - - 我为这来来回回的事情感到抱歉,但事情必须是这样的 >>> s = '-t-c-over----' >>> lst = [0 if i == '-' else 1 for

这是my的一个扩展,但顺序相反:即使用字符串
-t-c-over-->
,是否有方法生成一个二进制列表,所有有效字母都有
1
,连字符都有
0

[0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0]
 -  t  -  c  -  o  v  e  r  -  -  -  -
我为这来来回回的事情感到抱歉,但事情必须是这样的

>>> 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]
s = '-t-c-over----'
output = [0 if x == '-' else 1 for x in s]
列表comp检查字母是否为
'-'
-如果是,则将
0
放入列表,否则将
1
放入列表

列表comp检查字母是否为
'-'
-如果是,则将
0
放在列表中,否则将
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]
你可以用这个

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]

另一个选项是使用lambda函数和map函数

s = '-t-c-over----'
output = map(lambda x: 0 if x == '-' else 1, s)
编辑:显然这在Python3.2中不起作用,所以实际的解决方案是这样的

>>> 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]
s = '-t-c-over----'
output = [0 if x == '-' else 1 for x in s]

另一个选项是使用lambda函数和map函数

s = '-t-c-over----'
output = map(lambda x: 0 if x == '-' else 1, s)
编辑:显然这在Python3.2中不起作用,所以实际的解决方案是这样的

>>> 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]
s = '-t-c-over----'
output = [0 if x == '-' else 1 for x in s]

谢谢我一直在使用迭代器,但忘记了这个简单的方法。@Abhijit我必须承认你的方法很有趣
;)谢谢。我一直在使用迭代器,但忘记了这个简单的方法。@Abhijit我必须承认你的方法很有趣
;)你的答案没有添加任何新的内容,并且避免将变量命名为某种形式的内置或标准库。我真的很抱歉,但当我单击“发布答案”时,直到那时才发布任何答案。但由于我的网络问题,我花了太多时间才发布。你的答案没有添加任何新内容,也没有对变量命名,例如内置的或标准库。我真的很抱歉,但当我单击“发布答案”时,直到那时才发布答案。但是由于我的互联网问题,我花了太多的时间发布。根据python版本的不同,这不一定会创建一个列表。您能否更具体地说明哪些版本的python不起作用?例如在python3.2中。输出是一个映射对象而不是一个列表。根据python版本的不同,这不一定会创建一个列表。您能否更具体地说明哪些python版本不起作用?例如在python3.2中。输出是一个映射对象,而不是列表。