在python中将基数为10的整数列表转换为基数为4的列表

时间:2016-01-14 08:03:05

标签: python list

首先,如果标题不正确,我很抱歉。 我正在尝试构建一个程序,将基本10整数的列表转换为其二进制字符串。例如,我有这个列表

a = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

我希望将其转换为基础4.也许它应该看起来像这样

b4 = [[00],[01],[02],...[33]]

以下是我迄今为止所写的内容

def base10base4(pix,b):
       pix = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
       for i in range(pix):
              digits = []
              while pix > 0:
                     digits.insert(0, pix % b)
                     pix = pix // b
print(base10base4(pix[i], 4))

当我运行此代码时,它会给我这样的错误

NameError: name 'pix' is not defined

我仍然是Python的新手。我错过了什么或者我需要更改整个代码吗?我使用的是Python 3.5 谢谢你的帮助

1 个答案:

答案 0 :(得分:2)

这是一个递归函数,它返回列表中整数的基本b表示的字符串列表

def convertToBase(num,base):
    q=num/base
    r=num%base
    if (q == 0):
        return str(r)
    else:
        return convertToBase(q,base) + str(r)

pix = [0,3,15,56,12,34] #the list of numbers you want converted to base b
print [convertToBase(x,4) for x in pix]