我有一个任务,我必须返回一个包含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)
还尝试了一个元组,不同的变量类型等。
答案 0 :(得分:0)
newlist = [special_value,row [1] ... row [n]] - 基本上将所有字段放入列表中,并使用newlist.append()继续将新项目附加到列表中
然后打印或存储以下内容,如果您希望按相反顺序排序,请使用reverse = True
sorted(newlist, key = lambda x: x[0])
假设0是放置special_value的索引