【发布时间】:2014-12-18 00:39:33
【问题描述】:
def sortIt ():
with open('changed.csv') as infile, open ('sorted.csv','w') as outfile:
arr = []
for line in infile:
if not line:
info = line.split (',')
arr.append(information(info[0],info[1],info[2],info[3],info[4]))
arr.sort(key=lambda y:y.b)
for x in range (len(arr)):
outfile.writerow(arr[x].a+","+arr[x].b+","+arr[x].c+","+arr[x].d+","+arr[x].e)
所以我正在从双倍行距的 csv 文件中读取数据。然后我想将它们存储为一个数组。接下来,我想按字符串“b”对数组进行排序。 将它们打印到另一个名为“sorted”的 csv 文件中
问:我不确定这段代码有什么问题,它不会将排序后的数组打印到输出文件中。
预期输入:嗨,你,是,不是,坏
什么,是,向上,男人,?
预期输出:what,is,up,man,?
嗨,你,不是,坏
**编辑:信息是我创建的具有变量的对象:a、b、c、d、e。所以 changed.csv 是我将从中读取数据(字符串类型)的文件。文件中的每一行数据包含 5 个不同的东西 (a,b,c,d,e),用“,”分隔。然后我单独阅读每一行并得到 5 个不同的东西(a、b、c、d、e)。然后由于它没有按任何特定顺序排序,我将它存储在一个数组中以便我可以对其进行排序。所以'b'变量是字符串。我所说的按“b”排序的意思是按升序(字母顺序)对字符串进行排序。例如,“a”在“c”之前,“apple”在“banana”之前。按此顺序排序后,我想将它们全部打印到一个文件“sorted.csv”中。这样我以后可以在我想要使用二进制搜索的特定数据时访问它(因为它是排序的)。我的问题是,在我运行该函数后,我没有看到任何写在“sorted.csv”中的东西。抱歉对问题的描述含糊不清,我意识到我真的需要努力解释我的想法。
【问题讨论】:
-
你有什么问题?
-
输入文件和预期输出的任何示例?
-
@Marcin 编辑预期的输入和输出
-
@FamilyMaze 抱歉,您的问题不是很清楚。例如,
informaton是什么?什么是changed.csv 和sorted.csv? “按字符串“b”对数组进行排序”是什么意思?请澄清你的问题。否则,很难说出发生了什么。