我有这个清单
[[['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]
我该怎么办?
答案 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']