我的列表如下
list = [' [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10]']
我想要剥离" ["和"]"从列表中,然后将列表分为4个元素。即
output_list = [0x00000000 , 0x00000000 , 0x00000000 , 0x00000010]
感谢任何帮助。
干杯
答案 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]