-2

嗨,我需要一个与此功能相同的 def:

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

但我不能使用列表理解和按位异或。我一直在想,我不知道

4

5 回答 5

1

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

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

使用它:

>>> get_bits("c.cl")
'110001110111011000111101100'
于 2013-10-21T09:39:18.617 回答
1

正如 gefei 所提到的,您可以使用循环来替换列表推导。

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

    return _return

print convert("cheese")
于 2013-10-21T09:42:21.320 回答
0

那么有这样的事情吗?

def binary (str):
    b = []
    for x in str:
        b.append(format(ord(x), 'b')
    return "".join(b)
于 2013-10-21T09:39:12.097 回答
0

可能是这个?

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

    return r
于 2013-10-21T09:40:07.270 回答
0

领悟:

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

可以改写为:

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

于 2013-10-21T09:46:38.410 回答