簡體   English   中英

我有一個包含字母和數字列表的txt文件,我需要根據數字對它進行排序,我該怎么做?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM