如何使用2个纵向列表中的列数据创建新列表

时间:2018-04-25 23:45:06

标签: python list

我有这个清单

[[['21832', '1524', '30', '133'], ['16142', '1233', '17', '113']], 
 [['23296', '1570', '34', '138'], ['17243', '1277', '18', '118']], 
 [['23296', '1570', '34', '138'], ['17243', '1278', '18', '118']], 
 [['25919', '1658', '35', '141'], ['19081', '1344', '21', '124']]]

我想创建新的列表,如

[21832,23296,23296,25919]
[1524,1570,1570,1658]
[30,34,34,35]

我该怎么办?

3 个答案:

答案 0 :(得分:1)

您可以在解包时使用public_url

zip

输出:

d = [[['21832', '1524', '30', '133'], ['16142', '1233', '17', '113']], 
 [['23296', '1570', '34', '138'], ['17243', '1277', '18', '118']], 
 [['23296', '1570', '34', '138'], ['17243', '1278', '18', '118']], 
 [['25919', '1658', '35', '141'], ['19081', '1344', '21', '124']]]
new_d = list(map(list, zip(*[list(map(int, a)) for [*a, b], _ in d]))) 

答案 1 :(得分:1)

如果您对使用第三方库感到满意,可以使用numpy

import numpy as np

lst = [[['21832', '1524', '30', '133'], ['16142', '1233', '17', '113']], 
       [['23296', '1570', '34', '138'], ['17243', '1277', '18', '118']], 
       [['23296', '1570', '34', '138'], ['17243', '1278', '18', '118']], 
       [['25919', '1658', '35', '141'], ['19081', '1344', '21', '124']]]

res = np.array(lst)[:,0,:3].T

结果:

array([['21832', '23296', '23296', '25919'],
       ['1524', '1570', '1570', '1658'],
       ['30', '34', '34', '35']],
      dtype='<U11')

答案 2 :(得分:0)

所有好的答案!我必须投入列表理解解决方案......

test_lists = [[['21832', '1524', '30', '133'], ['16142', '1233', '17', '113']], 
 [['23296', '1570', '34', '138'], ['17243', '1277', '18', '118']], 
 [['23296', '1570', '34', '138'], ['17243', '1278', '18', '118']], 
 [['25919', '1658', '35', '141'], ['19081', '1344', '21', '124']]]

first_lists = [first_list[0] for first_list in test_lists]    

firsts_list = [elements[0] for elements in first_lists]
seconds_list = [elements[1] for elements in first_lists]
thirds_list = [elements[2] for elements in first_lists]
fourths_list = [elements[3] for elements in first_lists]

# firsts_list: ['21832', '23296', '23296', '25919']
# seconds_list: ['1524', '1570', '1570', '1658']
# thirds_list: ['30', '34', '34', '35']
# fourths_list: ['133', '138', '138', '141']
相关问题