1

我有一个带有单词和数字的列表,因此列表中的每个项目都如下所示:

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

我需要按旁边具有最大数字的项目排列列表,然后将列表粘贴到 Excel 或 CSV 并保存。

任何想法,将不胜感激!

4

2 回答 2

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']

如果您可以在数值之前有多个非数字单词,那么您可以给出 index-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']
于 2013-07-16T21:10:07.693 回答
0

您可以在 sorted 函数中使用 key 参数按 ' '(空格)之后的数字进行排序

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

创建一个新列表,其格式为:list2 = [[dog, 2], [cat,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 文件。并以 '\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
于 2013-07-16T21:36:12.373 回答