2013-07-16 86 views
1

我有文字和數字的名單旁邊,所以在列表中的每一項看起來是這樣的:粘貼列表到Excel文件

mylist = ['dog 2', 'cat 14'] 

我需要通過哪個項目有安排表最大的數字,然後將列表粘貼到Excel或CSV並保存。

任何想法,將不勝感激!

回答

0

您可以使用排序函數中的關鍵參數按''(空格)後的數字排序

list=['dog 2','cat 14'] 

創建一個新的列表,它是在格式: list2中= [[狗,2],[貓,14]]

list2 = [] 
for i in list: 
    i = i.split(' ') 
    i[1] = int(i[1]) 
    list2.append(i) 

排序列表2

list = sorted(list2, key=lambda element: element[1], reverse = True) 

寫入csv文件saperated按','。與「\ n」

file = open('filename.csv', 'w') 
for element in list: 
    file.write("%s,%d\n" % (element[0], element[1])) 
file.close 

結束,這將產生一個名爲filename.csv文件,它看起來像:

cat,14 
dog,2 
+0

哪裏會該文件是後我跑的程序? – rodrigocf

+0

好吧,我確實找到了該文件,但它是空的: -/ – rodrigocf

+0

將所有代碼放在一個名爲createcsv.py的文件中。然後運行$ python createcsv.py,您將在與createcsv.py相同的目錄中獲取該文件。試試吧,告訴我它是否適用於你.. – Adityaiitj

1

排序部分,你可以這樣做:

>>> my_list=['dog 2','cat 14'] 
>>> my_list.sort(key=lambda x: int(x.split()[1]), reverse=True) 
>>> 
>>> my_list 
['cat 14', 'dog 2'] 

如果你能在數值之前有多個非數字的話,那麼你可以指定索引的-1代替1

>>> my_list=['dog 2','cat 14', 'cat eat mouse 15'] 
>>> sorted(my_list, key=lambda x: int(x.split()[-1]), reverse=True) 
['cat eat mouse 15', 'cat 14', 'dog 2']