[英]I have a txt file with a list of letters and numbers, and I need to sort it based on the numbers, how do I go about doing this?
到目前為止,我有一個程序可以讀取文本文件,並將其放入列表中。 txt文件如下所示:
asdf:15.3 eazzz:31.12 qw:1.65 ...
我是Python的新手,因此我仍在嘗試找出如何正確執行此操作。 我知道這會將數字和字母分開,但是我不知道從這里去哪里。
def get_num(str):
items = str.split(':')
return float(items[1])
所需的輸出將具有按降序排列的數字及其相應的字母。 我知道可以使用“ sort”完成此操作,但如果可能的話,我也希望使用for循環完成此操作。
不要使用str作為輸入名稱。 要對包含元組(name, value)
的列表進行排序(name, value)
只需執行以下操作:
sorted(list_name, key = lambda x : x[1], reverse = True)
key = lambda x : x[1]
表示要按value
對列表進行排序,而reverse = True
表示要按降序對列表進行排序。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.