我需要将三个列表转换为十进制列表以检查其中的最大值和最小值。我该怎么做?示例列表:
binary_list = [0, 0, 0, 0, 0, 1, 1, 10, 10, 11, 100, 100, 11, 10, 0]
quaternary_list = [-11, -33, -22, -132, -220, -310]
octal_list = [62, -220, -36, 5, 0, 1, -12]
答案 0 :(得分:2)
如果我正确理解了您的问题,则可以执行以下操作(try it online):
binary_list = [0, 0, 0, 0, 0, 1, 1, 10, 10, 11, 100, 100, 11, 10, 0]
quaternary_list = [-11, -33, -22, -132, -220, -310]
octal_list = [62, -220, -36, 5, 0, 1, -12]
def list_to_decimal(lst, base):
return [int(str(item), base) for item in lst]
print(list_to_decimal(binary_list, 2)) # => [0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 4, 4, 3, 2, 0]
print(list_to_decimal(quaternary_list, 4)) # => [-5, -15, -10, -30, -40, -52]
print(list_to_decimal(octal_list, 8)) # => [50, -144, -30, 5, 0, 1, -10]
它可以使用函数list_to_decimal
来工作,该函数需要一个列表lst
和一个基数base
,然后使用a list comprehension将lst
的每个元素解释为数量为base
。
这能回答您的问题吗?
答案 1 :(得分:1)
您可以这样做。
binary_list = [0, 0, 0, 0, 0, 1, 1, 10, 10, 11, 100, 100, 11, 10, 0]
quaternary_list = [-11, -33, -22, -132, -220, -310]
octal_list = [62, -220, -36, 5, 0, 1, -12]
binary_list_do_dec = [int(str(i), 2) for i in binary_list]
quaternary_list_do_dec = [int(str(i), 4) for i in quaternary_list]
octal_list_do_dec = [int(str(i), 8) for i in octal_list]
print(binary_list_do_dec)
print(quaternary_list_do_dec)
print(octal_list_do_dec)
输出如下:
[0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 4, 4, 3, 2, 0]
[-5, -15, -10, -30, -40, -52]
[50, -144, -30, 5, 0, 1, -10]