0

这是我上一个问题的扩展,但顺序相反:也就是说,使用 string -t-c-over----,是否有一种方法可以生成所有有效字母都具有1且连字符具有的二进制列表0

[0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0]
 -  t  -  c  -  o  v  e  r  -  -  -  -

我为来回感到抱歉,但它必须像这样。

4

3 回答 3

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 检查一个字母是否是'-'- 如果是,它将 a0放入列表中,否则将 a 放入列表1中。

于 2013-03-02T06:22:48.860 回答
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]
于 2013-03-02T06:28:47.617 回答
-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]
于 2013-03-02T06:31:27.107 回答