在python列表中插入数字的二进制表示法

在python列表中插入数字的二进制表示法,python,Python,我试着做一些类似的事情: x=[1001011111] 我目前正在尝试将所有值(十进制)保存在列表arry中,然后尝试使用以下方法将其转换为二进制表示法: '{:04b}'。格式(arry) 在我插入一个元素后,我一直在想如何添加另一个元素。我曾经尝试过使用append()和+来实现,但是append()不起作用,而使用+将导致所有二进制格式粘合在一起,我应该如何实现这一点。 谢谢 编辑: 给出错误: Traceback (most recent call last): File "append

我试着做一些类似的事情:

x=[1001011111]

我目前正在尝试将所有值(十进制)保存在列表arry中,然后尝试使用以下方法将其转换为二进制表示法:

'{:04b}'。格式(arry)

在我插入一个元素后,我一直在想如何添加另一个元素。我曾经尝试过使用append()和+来实现,但是append()不起作用,而使用+将导致所有二进制格式粘合在一起,我应该如何实现这一点。 谢谢 编辑:

给出错误:

Traceback (most recent call last):
File "append.py", line 6, in <module>
 x.append(k)
AttributeError: 'str' object has no attribute 'append'
回溯(最近一次呼叫最后一次):
文件“append.py”,第6行,在
x、 附加(k)
AttributeError:“str”对象没有属性“append”

将第一个元素插入列表时,也应使用
追加

x  = []
x.append('{:04b}'.format(10))
print(x)
x.append('{:04b}'.format(2))
print(x)

或者,您可以用不同的方式构建列表。。。e、 g.一份清单:

x = ['{:04b}'.format(y) for y in (10, 2)]
这样做的优点是可以很好地扩展到任意数量的整数


编辑(回应评论):

如果您真的只想将列表中的一些数字格式化为二进制,可以使用一个简单的类轻松地完成:

class BinFormatter(object):
    def __init__(self, v):
        self.v = v
    def __repr__(self):
        return '{:04b}'.format(self.v)

print([BinFormatter(v) for v in (10, 2)])

但是,请注意,这违反了有关
\uuuu repr\uuuu
方法的常规规范,该方法通常被认为提供尽可能多的重建对象所需的信息(在这种情况下,
\uuu repr\uuu
方法正在删除类型信息,因此您没有足够的信息来重建对象。)…

在将第一个元素插入列表时,您也应该使用
append

x  = []
x.append('{:04b}'.format(10))
print(x)
x.append('{:04b}'.format(2))
print(x)

或者,您可以以不同的方式构建列表…例如,列表理解:

x = ['{:04b}'.format(y) for y in (10, 2)]
这样做的优点是可以很好地扩展到任意数量的整数


编辑(回应评论):

如果您真的只想将列表中的一些数字格式化为二进制,可以使用一个简单的类轻松地完成:

class BinFormatter(object):
    def __init__(self, v):
        self.v = v
    def __repr__(self):
        return '{:04b}'.format(self.v)

print([BinFormatter(v) for v in (10, 2)])

但是,请注意,这违反了有关
\uuuu repr\uuuu
方法的常规规范,该方法通常被认为提供尽可能多的重建对象所需的信息(在本例中,
\uuuu repr\uuu
方法正在删除类型信息,因此您没有足够的信息来重建对象。)…

显示代码,
append
如果您是在列表中追加,而不是在字符串中追加,则应该可以工作。搜索错误时发生了。但是我直接追加到列表中。您正在将示例代码第2行的
x
重新分配到
string
。谢谢。哦,我忽略了显示代码,
append
如果您是附加到列表而不是字符串,则应该可以工作。搜索错误时发生了。但我直接附加到列表。您正在将
x
重新分配到示例代码第2行的
string
。谢谢。哦,我忽略了这一点。是否可以将首字母“and tailing”作为['1010','0010']我能得到像[10100010]这样的字符串吗??@user2754673——这取决于你在寻找什么。Python不会自动打印那样的整数。你可以创建一个这样表示自己的特殊类,但要让它在任何其他方面表现得像一个整数,还需要一些工作……你在这里要做什么?我只需要在[1000011]中使用它格式。实际上,在用C编写程序时,打印二进制文件导致了一些问题,因为它位于两个for循环中,并且模型检查器无法展开,因为需要太多的转换,所以我正在考虑用python生成相同的程序,我对python非常不熟悉。我可以做的一件事是生成ad,然后编写脚本以避开wi这是一个字符串,我能得到像[10100010]这样的字符串吗??@user2754673——这取决于你在寻找什么。Python不会自动打印那样的整数。你可以创建一个这样表示自己的特殊类,但要让它在任何其他方面表现得像一个整数,还需要一些工作……你在这里要做什么?我只需要在[1000011]中使用它格式。实际上,在用C编写程序时,打印二进制文件导致了一些问题,因为它位于两个for循环中,并且模型检查器无法展开,因为需要太多的转换,所以我正在考虑用python生成相同的程序,我对python非常不熟悉。我可以做的一件事是生成ad,然后编写脚本以避开wi谢谢