Python 如何将十进制中的每个列表元素从二进制转换为十进制(优化方式)?

Python 如何将十进制中的每个列表元素从二进制转换为十进制(优化方式)?,python,python-3.x,Python,Python 3.x,我有一个列表,list1=[110101110]如何将每个列表元素转换为十进制形式,使list1成为[6,5,6] 这些列表元素只包含0和1 由于列表数据可能很大,我正在寻找一个优化的解决方案。提前谢谢。你是说这样吗 list = [] for binary in list1: decimal = int(binary, 2) list.append(decimal) 但是,由于列表元素是整数而不是二进制文件,所以这将不起作用。您可以试试这个 list1 = [110,10

我有一个列表,
list1=[110101110]
如何将每个列表元素转换为十进制形式,使list1成为
[6,5,6]

这些列表元素只包含0和1

由于列表数据可能很大,我正在寻找一个优化的解决方案。提前谢谢。

你是说这样吗

list = []
for binary in list1:
     decimal = int(binary, 2)
     list.append(decimal)
但是,由于列表元素是整数而不是二进制文件,所以这将不起作用。

您可以试试这个

list1 = [110,101,110]
def binaryToDecimal(n):
    return int(n,2)
x = [binaryToDecimal(str(bins)) for bins in list1]
缩略版

x = [int(str(bins),2) for bins in list1]

list1=[110101110]
不包含“二进制”。这些是
int
对象。欢迎使用堆栈溢出!请拿起,阅读,和,并提供一个。“为我实现此功能”是本网站的主题。你必须诚实地尝试,然后就你的算法或技术提出一个具体的问题。
列表(map(lambda位:int(f'0b{bits}',2),[110101110])
。将已有的数字转换为字符串,并在“0b”前面加上前缀,以将其转换为二进制格式。然后您可以使用
int(bin_str,2)
将其转换为整数。@Chrispresso”并在“0b”前面加上前缀。为什么?我不是投票否决它的那个人,但您为什么要这么做?为什么要将数字从整数转换为字符串,然后再转换回整数?另外,您正在根据结果创建一个新列表,为什么不更改该列表中的值呢?我将回答您的第一个问题。你试着给函数一个整数。在我说的(str(bins))中,去掉他str,看看你得到了什么