arrays - 在 2d 数组 python 3.x 中组合元素
问题描述
我有这个二维数组,其中每个数组由 4 组 4 个十六进制值组成:
list1=[['74 68 61 74', '73 20 6D 79', '20 6B 75 6E', '67 20 66 75'], ['C2 5B FC F1', 'B1 7B 91 88', '91 10 E4 E6','F6 30 82 93']]
我想首先将数组拆分为多个 1d 数组,然后将数组组合成多个单个元素,而不是每个元素都有 4 个值,如下所示:
list2=[74, 68, 61, 74, 73, 20, 6D, 79, 20, 6B, 75, 6E, 67, 20, 66, 75]
列表 3=[C2, 5B, FC, F1, B1, 7B, 91, 88, 91, 10, E4, E6, F6, 30, 82, 93]
请让我知道如何做到这一点。先感谢您。
解决方案
您本质上想要做的是“展平”内部列表。有几种方法可以解决这个问题。下面的例子是从这里借用的。意识到列表中的值只是字符串(即使它们可以表示十六进制值),因此在拆分它们时需要将它们视为字符串。
In [25]: list1
Out[25]:
[['74 68 61 74', '73 20 6D 79', '20 6B 75 6E', '67 20 66 75'],
['C2 5B FC F1', 'B1 7B 91 88', '91 10 E4 E6', 'F6 30 82 93']]
In [26]: list2 = [t for sublist in list1[0] for t in sublist.split(' ')]
In [27]: list3 = [t for sublist in list1[1] for t in sublist.split(' ')]
In [28]: list2
Out[28]:
['74',
'68',
'61',
'74',
'73',
'20',
'6D',
'79',
'20',
'6B',
'75',
'6E',
'67',
'20',
'66',
'75']
In [29]: list3
Out[29]:
['C2',
'5B',
'FC',
'F1',
'B1',
'7B',
'91',
'88',
'91',
'10',
'E4',
'E6',
'F6',
'30',
'82',
'93']
In [30]:
推荐阅读
- swift - Swift:如何将数据添加到对象列表中的对象变量
- sql-server - 通过在 SQL 中具有组条件的 COUNT
- masstransit - 需要StateMachine的Activity例子
- selenium - 如何使用 appium 在浏览器堆栈中执行期间更新应用程序?
- python - 理解 tweepy 的状态对象
- javascript - Vuetify - 垂直显示标题和 v-card 以及全尺寸
- masstransit - MassTransit IJobConsumer 无法运行作业
- rust - 如何在 rust 中实现 id 锁定?
- php - 无效签名 - 提供的签名不匹配 - 状态 401
- php - 这种方法足以保护我的主机(php)吗?