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

用python将列表分成4个相等的部分,python,list,Python,List,我的清单如下 list = [' [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10]'] 我想从列表中去掉“[”和“]”,然后将列表分成4个元素。i、 e output_list = [0x00000000 , 0x00000000 , 0x00000000 , 0x00000010] 感谢您的帮助 干杯第一步 l = mylist[0].strip(' []').split(' ') 输出: ['00', '00', '00', '00',

我的清单如下

list = [' [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10]']
我想从列表中去掉“[”和“]”,然后将列表分成4个元素。i、 e

output_list = [0x00000000 , 0x00000000 , 0x00000000 , 0x00000010]
感谢您的帮助


干杯

第一步

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

['00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '10']
[['00', '00', '00', '00'],
 ['00', '00', '00', '00'],
 ['00', '00', '00', '00'],
 ['00', '00', '00', '10']]
['0x00000000', '0x00000000', '0x00000000', '0x00000010']
[0, 0, 0, 16]
步骤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']
[['00', '00', '00', '00'],
 ['00', '00', '00', '00'],
 ['00', '00', '00', '00'],
 ['00', '00', '00', '10']]
['0x00000000', '0x00000000', '0x00000000', '0x00000010']
[0, 0, 0, 16]
步骤3

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

['00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '10']
[['00', '00', '00', '00'],
 ['00', '00', '00', '00'],
 ['00', '00', '00', '00'],
 ['00', '00', '00', '10']]
['0x00000000', '0x00000000', '0x00000000', '0x00000010']
[0, 0, 0, 16]
要获取整数,请按如下方式执行:

[int(op, 16) for op in output_list]
输出:

['00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '10']
[['00', '00', '00', '00'],
 ['00', '00', '00', '00'],
 ['00', '00', '00', '00'],
 ['00', '00', '00', '10']]
['0x00000000', '0x00000000', '0x00000000', '0x00000010']
[0, 0, 0, 16]
试试这个

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]

有没有什么理由让你有一个单一的元素列表?我们可以把问题简化为“我有这个字符串”吗?你看到了吗?我不知道你在找什么。您是在尝试生成以某种方式格式化的字符串,还是像您所写的那样生成实际的数字列表
[0,0,0,16]
?看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查。我想去掉“[”和“]”好,那么去除特定字符的Python字符串函数是什么呢。e、 g.空格和括号?或者将“[”替换为“”?你需要表现出一点努力,因此这不是一个代码编写服务。在去掉“[”之后,你注意到你的数字串有规则的长度为11的块吗?@Aran Fey进行了更改