我有一些文件,如..排序文件
l.1,l.3,l.2,l.12,l.36,l.24
,當我整理它給我的列表...
l.1,l.12,l.2,l.24,l.3,l.36
我怎樣才能得到他們以這種方式..
l.2,l.2,l.3,l.12,l.24,l.36
注:因爲它是不允許添加的實際文件名,因爲它是我已經給了它作爲一個列表。但實際的文件名由''連接。像l.1 l.2
我可以爲它寫一個氣泡排序算法。但我想一個簡單的方法..
感謝
我有一些文件,如..排序文件
l.1,l.3,l.2,l.12,l.36,l.24
,當我整理它給我的列表...
l.1,l.12,l.2,l.24,l.3,l.36
我怎樣才能得到他們以這種方式..
l.2,l.2,l.3,l.12,l.24,l.36
注:因爲它是不允許添加的實際文件名,因爲它是我已經給了它作爲一個列表。但實際的文件名由''連接。像l.1 l.2
我可以爲它寫一個氣泡排序算法。但我想一個簡單的方法..
感謝
在這裏你去:
l = ['l.1','l.3','l.2','l.12','l.36','l.24']
sorted(l, key = lambda x: int(x[2:]))
非常感謝你 –
在一個行:
>>> li = ["l.1", "l.3", "l.2", "l.12", "l.36", "l.24"]
>>> sorted(li, key=lambda x: int(x.split(".")[-1]))
['l.1', 'l.2', 'l.3', 'l.12', 'l.24', 'l.36']
可以請你告訴我如何列出文件在一個目錄匹配一個字符串與一個for循環在一行:) –
首先篩選你的列表(例如'li = [x爲x在李如果「somestring 「in x]'),然後按照上面的說明進行操作。如果它是一個複雜的模式,你想匹配,使用正則表達式。 –
感謝我現在實施它,但只是想檢查任何可用的內置功能。非常感謝你 –
由於Python文檔中所述名單上的排序函數接受多個參數(relevant section here)。
您可以使用key
參數來指定一個獲取密鑰的函數。你的情況下實現可能是:
def key_fn(n):
return int(n.split('.')[-1])
然後你可以這樣做:
l = ["l.1","l.3","l.2","l.12","l.36","l.24"]
l.sort(key=key_fn)
那些是'1's(數量)或'l's(字母)?另外,它是數字列表,字符串列表還是一個大字符串? –
搜索Python自然排序;例如http://stackoverflow.com/questions/4836710/does-python-have-a-built-in-function-for-string-natural-sort – iterums
對不起tobias_k它的字母'l'不是數字'1':P –