到目前为止我所拥有的是一个读取文本文件并将其放入列表的程序。 txt文件如下所示:
asdf:15.3
eazzz:31.12
qw:1.65
...
我是Python的新手,所以我还在试图弄清楚如何正确地做到这一点。我知道这会将数字与字母分开,但我不知道从哪里开始。
def get_num(str):
items = str.split(':')
return float(items[1])
所需的输出将按照各自的字母降序排列。我知道这可以通过“排序”完成,但如果可能的话,我也希望看到它用for循环完成。
答案 0 :(得分:2)
不要使用str作为输入名称。
要对包含元组(name, value)
的列表进行排序,请执行以下操作:
sorted(list_name, key = lambda x : x[1], reverse = True)
key = lambda x : x[1]
表示您希望按value
对列表进行排序,而reverse = True
表示您希望排序按降序排列。
答案 1 :(得分:1)
data = '''asdf:15.3
eazzz:31.12
qw:1.65
adasf:7.3'''
# convert string to list
lst = data.split('\n')
#sort list of data by two things. first the string part second number part
print '\n'.join(sorted(lst, key=lambda item:(item.split(':')[0],float(item.split(':')[1])), reverse = True))
输出:
qw:1.65
eazzz:31.12
asdf:15.3
adasf:7.3