如何创建将字符串直接转换为二进制的函数?

时间:2013-10-21 09:35:48

标签: python

嗨,我需要一个能做同样工作的def:

st = "c.cl"
print("".join(format(ord(x), 'b')for x in st) )

但我不能使用列表理解和按位xor。我一直在思考,我不知道

5 个答案:

答案 0 :(得分:1)

你只需将它包装在一个函数中。

def get_bits(s):
    return "".join(map(lambda x: format(ord(x), 'b'), s))

使用它:

>>> get_bits("c.cl")
'110001110111011000111101100'

答案 1 :(得分:1)

如gefei所述,您可以使用循环来替换列表理解。

def convert(some_string):
    _return = ""
    for char in some_string:
        _return += format(ord(char), 'b')

    return _return

print convert("cheese")

答案 2 :(得分:0)

那样的东西呢?

def binary (str):
    b = []
    for x in str:
        b.append(format(ord(x), 'b')
    return "".join(b)

答案 3 :(得分:0)

可能是这个吗?

def convert(s):
    r = ""
    for c in s:
        r += "{0:b}".format(ord(c))

    return r

答案 4 :(得分:0)

理解:

[format(ord(x), 'b') for x in st]

可以改写为:

map(lambda x: format(ord(x), 'b'), st)