【问题标题】:Combining elements within a 2d array python 3.x在 2d 数组 python 3.x 中组合元素
【发布时间】:2021-04-17 19:15:27
【问题描述】:

我有这个二维数组,其中每个数组由 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']]

我想首先将数组拆分为多个一维数组,然后将数组合并为多个单个元素,而不是每个元素都有 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]

请告诉我如何做到这一点。提前谢谢你。

【问题讨论】:

    标签: arrays python-3.x multidimensional-array


    【解决方案1】:

    您本质上想要做的是“扁平化”内部列表。有几种方法可以解决这个问题。下面的例子借鉴了here。意识到列表中的值只是字符串(即使它们可以表示十六进制值),因此在拆分它们时需要将它们视为字符串。

    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]:   
    

    【讨论】:

    • 谢谢。实际上,我在数组中还有大约 10 个其他列表,这使我可以使用每个列表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多