python转化为二进制数_python-使用每个二进制数将二进制转换为数组

我正在尝试将每个1/0的二进制值转换为列表,但是我得到默认的二进制值而不是列表.

我有一个字符串,我将每个字符转换为二进制,它为我提供了一个列表,其中包含每个字符的字符串.现在,我试图将每个字符串拆分为值0/1的整数,但是我什么也没得到.

# if message = "CC"

message="CC"

# just a debug thing

for c in message:

asci = ord(c)

bin = int("{0:b}".format(asci))

print >> sys.stderr, "For %c, asci is %d and bin is %d" %(c,asci,bin)

c = ["{0:b}".format(ord(c)) for c in message]

# c = ['1000011', '1000011']

bin = [int(c) for c in c]

#bin should be [1,0,0,0,0,1,1,1,0,0,0,0,1,1]

# but I get [1000011, 1000011]

print >> sys.stderr, bin

解决方法:

如果您有这个:

c = ['1000011', '1000011']

您想要实现以下目标:

[1,0,0,0,0,1,1,1,0,0,0,0,1,1]

你可以做:

modified_list=[int(i) for element in c for i in element]

或者您可以使用itertools.chain

from itertools import chain

modified_list=list(chain(*c))

当您想同时加入列表理解功能时,可以这样进行:

bin= list( chain( *["{0:b}".format(ord(c)) for c in message] )

标签:python,string,list,binary,list-comprehension

来源: https://codeday.me/bug/20191013/1905126.html

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值