當前位置:首頁 » 編程語言 » python字元串排序函數

python字元串排序函數

發布時間: 2022-08-02 00:19:57

python中,sort()函數用來排序,但是如果被排的序列中既有數字,又有字母怎麼排。

1,3,a 主要根據asc碼排序,1和3屬於int類型,a屬於str類型,i的asc碼在s前面,所以先排數字,然後1排在3前面沒有什麼疑問了吧。

② python如何對字元串進行排序

可以用sorted函數

③ python實現字元串列表排序

a = ['b', 'a', 'c', 'ab', 'aa', 'aaa']

a.sort(key=lambda x: str(len(x)) + x)
print(a)
#['a', 'b', 'c', 'aa', 'ab', 'aaa']

④ python手寫排序函數 在線等

#舉個例子,冒泡排序
defsort_list(f,l):
print"befor:",l
foriinrange(len(l)):
forjinrange(i,len(l)):
ifnotf(l[j],l[i]):
l[i],l[j]=l[j],l[i]
print"sorted:",l
#function
f=lambdaa,b:a>=b
#test
l1=[3,2,1,6,4]
l2=["a","x",5,"g"]
sort_list(f,l1)
sort_list(f,l2)

#STDOUT:
"""
befor:[3,2,1,6,4]
sorted:[1,2,3,4,6]
befor:['a','x',5,'g']
sorted:[5,'a','g','x']
"""

⑤ python 字元串列表中根據字元串內的數字進行排序。

你的列表A現在不就是按所含數字從大到小排列的嗎?

不過,我還是用正則表達式的方法幫你排了一下序,如果你要數字從小到大排序,只要把alist.sort(key=sort_key,reverse=True)改成alist.sort(key=sort_key,reverse=False)就行了.

完整的Python程序如下

importre
defsort_key(s):
ifs:
try:
c=re.findall('d+$',s)[0]
except:
c=-1
returnint(c)
defstrsort(alist):
alist.sort(key=sort_key,reverse=True)
returnalist
A=['abc15','abd13','abe9','abf6','abg2']
print(strsort(A))

⑥ python輸入一個字元串,求出該字元串包含的字元串包含的字元集合並按順序排序

咨詢記錄 · 回答於2022-01-01

⑦ python字元串排序問題

def char_cmp(a, b):
#實現你的比較規則, 分太少,不值為你寫這個函數

sorted(a, char_cmp)

⑧ python數據同時排序

Python列表具有內置的 list.sort()方法,可以在原地修改列表。 還有一個 sorted()內置的函數從迭代構建一個新的排序列表。在本文中,我們將探討使用Python排序數據的各種技術。

請注意,sort()原始數據被破壞,sorted()沒有對原始數據進行操作,而是新建了一個新數據。

一、基本的排序

最基本的排序很簡單。只要使用sorted()函數即可返回一個 新的排序的列表

>>>sorted([5, 2, 3, 1, 4])

[1, 2, 3, 4, 5]

咱們也可以使用 list.sort()方法。該方法是對列表list進行的原地操作(原數據被修改,已經不是原來的本來面目)。一般情況下,不如使用 sorted()方便,但是如果你不需要原列表list,使用 sort()會更具效率。

>>>a = [5, 2, 3, 1, 4]

>>>a.sort()

>>>a #a發生改變

[1, 2, 3, 4, 5]

另一個不同點, list.sort()方法只能應用於列表對象數據。而 sorted()卻可以對任何可迭代對象進行排序。也就是說sorted()更具有普遍使用性。這里大燈建議初學者使用sorted()。

二、Key參數函數

list.sort()和 sorted()都有key參數,可以指定函數來對元素進行排序。

例如,這里我們使用一個字元串(字元串也是可迭代對象)

>>>sorted("This is a test string from Andrew".split(), key=str.lower)

⑨ python中list.sort()的用

只要是可迭代對象都可以用sorted 。
sorted(itrearble, cmp=None, key=None, reverse=False)
=號後面是默認值 默認是升序排序的, 如果想讓結果降序排列,用reverse=True
最後會將排序的結果放到一個新的列表中, 而不是對iterable本身進行修改。
eg:
1, 簡單排序
sorted('123456') 字元串
['1', '2', '3', '4', '5', '6']
sorted([1,4,5,2,3,6]) 列表
[1, 2, 3, 4, 5, 6]
sorted({1:'q',3:'c',2:'g'}) 字典, 默認對字典的鍵進行排序
[1, 2, 3]
sorted({1:'q',3:'c',2:'g'}.keys()) 對字典的鍵
[1, 2, 3]
sorted({1:'q',3:'c',2:'g'}.values()) 對字典的值
['c', 'g', 'q']
sorted({1:'q',3:'c',2:'g'}.items()) 對鍵值對組成的元組的列表
[(1, 'q'), (2, 'g'), (3, 'c')]
2, 對元素指定的某一部分進行排序,關鍵字排序
s = ['Chr1-10.txt','Chr1-1.txt','Chr1-2.txt','Chr1-14.txt','Chr1-3.txt','Chr1-20.txt','Chr1-5.txt']
我想要按照-後的數字的大小升序排序。要用到key
sorted(s, key=lambda d : int(d.split('-')[-1].split('.')[0]))
['Chr1-1.txt', 'Chr1-2.txt', 'Chr1-3.txt', 'Chr1-5.txt', 'Chr1-10.txt', 'Chr1-14.txt', 'Chr1-20.txt']
這就是key的功能,制定排序的關鍵字,通常都是一個lambda函數,當然你也可以事先定義好這個函數。如果不講這個關鍵字轉化為整型,結果是這樣的:
sorted(s, key=lambda d : d.split('-')[-1].split('.')[0])
['Chr1-1.txt', 'Chr1-10.txt', 'Chr1-14.txt', 'Chr1-2.txt', 'Chr1-20.txt', 'Chr1-3.txt', 'Chr1-5.txt']
這相當於把這個關鍵字當做字元串了,很顯然,在python中,'2' > '10'
你可以定製你想要的key, 如 key = lambda x : len(x) 按照序列的長度去排序。key= lambda x : (x[1], x[0]) 按二個元素,再第一個 等等。。。

熱點內容
伺服器essd什麼意思 發布:2025-01-23 14:51:24 瀏覽:268
spring上傳文件限制 發布:2025-01-23 14:50:30 瀏覽:310
奇亞幣p圖軟體存儲機 發布:2025-01-23 14:38:03 瀏覽:43
linux有用的命令 發布:2025-01-23 14:35:03 瀏覽:681
php顯示縮略圖 發布:2025-01-23 14:22:17 瀏覽:725
安卓哈利波特怎麼更換賬號 發布:2025-01-23 14:16:44 瀏覽:586
中國壓縮包 發布:2025-01-23 14:10:49 瀏覽:499
如果讓電腦訪問到公司伺服器 發布:2025-01-23 14:02:46 瀏覽:686
360瀏覽器腳本 發布:2025-01-23 13:54:42 瀏覽:565
合拍率演算法 發布:2025-01-23 13:50:59 瀏覽:257