通过行中的第一个元素在csv中排序

时间:2015-10-14 12:46:20

标签: python list sorting csv

我有一个任务,我必须返回一个包含csv文件值的列表。需要使用前2个值来计算特殊值,使得列表看起来像[(special_value),row [2],row [3],row [4],row [5],row [6]] 。问题是它必须按special_value的大小排序,经过几个小时的尝试后我似乎无法找到一种方法,每次尝试只返回一个行列表,其中包含从每行计算的special_value,如找到的那样在文件中。我已经尝试了itemgetter(),并使用for循环遍历行。一些代码的样本,我知道这些代码很笨拙。

os.chdir(r"C:\Users\filepath")
clean_1 = open("filename","r")
clean_1 = csv.reader(clean_1)



for row in clean_1:

    if len(row[0]) == 5:
        #code to find special_value
        special_value = str(special_value)
    if len(row[0]) == 6:
        #code to find special_value
        special_value = str(special_value)
    list = [[special_value],
             [row[2]],
             [row[3]],
             [row[4]],
             [row[5]],
             [row[6]]]


    print(list)

还尝试了一个元组,不同的变量类型等。

1 个答案:

答案 0 :(得分:0)

newlist = [special_value,row [1] ... row [n]] - 基本上将所有字段放入列表中,并使用newlist.append()继续将新项目附加到列表中

然后打印或存储以下内容,如果您希望按相反顺序排序,请使用reverse = True

sorted(newlist, key = lambda x: x[0])

假设0是放置special_value的索引