在python中对列表进行排序

时间:2016-08-04 09:57:36

标签: python list

这是我的列表在使用一些csv解析后的样子:

list=[['1131', '01/06/15', 'PROFI ROM FOOD SRL', '290.7'],
         ['1131', '', '', ''], ['2024194PJ', '01/08/15', 
        'SOCIETATEA NATIONALA DE', '2,088.17'], ['2024194PJ', '', 'RADIOCOMUNICATII SA', '']]

(这是一个数据样本,实际列表会更大) 我将解析该列表:

for a in list:
   for x in a:
      if ....:
         anotherlist.append(x)

我想要这个输出:

anotherlist=[['1131', '01/06/15', 'PROFI ROM FOOD SRL', '290.7'],
['2024194PJ', '01/08/15', 'SOCIETATEA NATIONALA DE RADIOCOMUNICATII
SA', '2,088.17']]

我想将第2个索引值附加到每个上一个列表并删除该特定列表,所以这个

[['2024194PJ', '01/08/15', 'SOCIETATEA NATIONALA DE', 
 '2,088.17'], ['2024194PJ', '', 'RADIOCOMUNICATII SA', '']]

将是这个

[['2024194PJ', '01/08/15', 
'SOCIETATEA NATIONALA DE RADIOCOMUNICATII SA', '2,088.17']]

并且也摆脱了这种格式

['1131', '', '', '']

但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

假设列表将始终遵循您提供的架构:

list2 = []
for i in range(len(list)/2):
    list2 += [[list[i*2][0],
               list[i*2][1],
               list[i*2][2] + ' ' + list[i*2+1][2],
               list[i*2][3]]]

<强>解释
我们从一个空列表(list2)开始:

list2 = []

for循环然后遍历整个列表,但只查看每个第二个元素:

for i in range(len(list)/2):

在每一步中,它都会向list2添加一个新条目:

list2 += 

这个新条目是两个列表元素的组合,列表[i * 2]和列表[i * 2 + 1]:

         [[list[i*2][0],
           list[i*2][1],
           list[i*2][2] + ' ' + list[i*2+1][2],
           list[i*2][3]]]