在python中将列表分成4个相等的部分

时间:2018-05-03 09:10:51

标签: python list

我的列表如下

list = [' [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10]']

我想要剥离" ["和"]"从列表中,然后将列表分为4个元素。即

output_list = [0x00000000 , 0x00000000 , 0x00000000 , 0x00000010]

感谢任何帮助。

干杯

2 个答案:

答案 0 :(得分:1)

第1步

l = mylist[0].strip(' []').split(' ')

输出:

['00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '10']

第2步

parts = [l[x:x+4] for x in range(0, len(l), 4)]

输出:

[['00', '00', '00', '00'],
 ['00', '00', '00', '00'],
 ['00', '00', '00', '00'],
 ['00', '00', '00', '10']]

第3步

output_list = ['0x%s' % ''.join(p) for p in parts]

输出:

['0x00000000', '0x00000000', '0x00000000', '0x00000010']

要得到整数,就这样做:

[int(op, 16) for op in output_list]

输出:

[0, 0, 0, 16]

答案 1 :(得分:1)

试试这个

list = [' [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10]']

#removing [ and ] and extra spaces
string=list[0]
string=string.replace("[","")
string=string.replace("]","")
string=string.replace(" ","")


output_list=["0x"+string[i:i+8] for i in range(0,len(string),8)]
print(output_list)
#['0x00000000', '0x00000000', '0x00000000', '0x00000010']

这是一种更简单的方法。只需从列表中取出字符串,然后删除方括号。然后,只需迭代此字符串并将0x添加到每个部分的开头即可。

如果输出应该是整数列表而不是字符串:

output_list=[int("0x"+string[i:i+8],16) for i in range(0,len(string),8)]
#[0, 0, 0, 16]