導航:首頁 > 編程語言 > python實現順序串

python實現順序串

發布時間:2023-11-20 02:32:48

❶ 怎樣用python將數組里的數從高到低排序

1、首先我們定義一個列表輸入一串大小不一的數字。

❷ python序列

一、序列

1、序列中的索引操作

序列中的元素都是有序的,每一個元素都帶有序號,這個序號叫 索引。索引有正值索引和負值索引之分。

2、加乘操作

3、切片操作

序列的切片(Slicing)就是從序列中切分出小的子序列。

切片運算符的語法形式為[start:end:step]。其中,start是開始索引,end是結束索引,step是步長(切片時獲取的元素的間隔,可以為正整數,也可以為負整數)。

注意:切下的小切片包括start位置的元素,但不包括end位置的元素,start和end都可以省略。步長默認為1,可省略。

二、操作字元串

2.1查找字元串

字元串的find( )方法空廳用於查找子字元串。該方法的語法為str.find(sub[,start[,end]]),表示:在索引start到end之間查找子字元串sub,如果找到,則返回最左端位置的索引;如果沒有找到,則返回-1。start跟end都可以省略。

2.2替斗消隱換字元串

replace( )方法替換匹配的子字元串,返回值是替換之後的字元串。該方法的語法為str.replace(old,new[,count]),表示:用new子字元串替換old子字元串。count參數指定了替換old子字元串的個數,如果count被省橋隱略,則替換所有old子字元串。

2.3分割字元串

split( )方法,按照子字元串來分割字元串,返回字元串列表對象。該方法的語法為str.split(sep=None,maxsplit=-1),表示:使用sep子字元串分割字元串str。maxsplit是最大分割次數,如果maxsplit被省略,則表示不限制分割次數。

2.4統計英文文章中單詞出現的頻率

❸ python之序列

Python 中的序列是一塊可存放多個值的連續內存空間,所有值按一定順序排列,每個值所在位置都有一個編號,稱其為索引,我們可以通過索引訪問其對應值。

其實字元串就是序列結構,除此之外常見的序列結構還包括列表、元組等。

序列索引支持非負數和負數, 索引為非負數弊改,從 0 開始 ,如下所示:

以字元串為例,如下所示:

輸出結果租老判:

從結果來看,我們使用非負數索引與負數索引得到的結果一致。

切片操作可以訪問一定范圍內的元素,語法如下所示:

以字元串為例,如下所示:

輸出結果:

Python 支持類型相同的序列使用 + 作相加操作,該操作不會去除重復的元素。以字元串為例,如下所示:

輸出結果:

Python 中,使用數字 n 乘以一個序列會生成新的序列,內容為原來序列被重復 n 次的結果。以字元串為例,如下所示:

輸出結果:

Python 使用 in 關鍵字檢查某元素是否為序列的成員,語法如下:
val in seq

以字元串為例,如下所示:

輸出結果:
True
2.6 內置函數
len()—— 計算序列的長度
max()——找出序列中的最大元素
min()——找出序列中的最小元素
list() ——將序列轉換含檔為列表
str() ——將序列轉換為字元串
sum()——計算元素的和
sorted()——對元素進行排序
enumerate()——將序列組合為一個索引序列,多用在 for 循環中
舉例,如下所示:

輸出結果:

❹ python字母順序排序

❺ 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按字母順序排序英文名字但是不可以用sort函數

代碼如下:

list = ['banana', 'apple', 'orange', 'blueberry', 'watermelon', 'strawberry', 'mango']

print(list)

list.sort()#根據字母順序排序

print(list)#['apple', 'banana', 'blueberry', 'mango', 'orange', 'strawberry', 'watermelon']

list.sort(reverse = True) #根據字母相反順序排序

print(str(list) + " ")#['watermelon', 'strawberry', 'orange', 'mango', 'blueberry', 'banana', 'apple']

(6)python實現順序串擴展閱讀

sorted()函數四種重要的特性:

1、sorted()函數不需要定義。它是一個內置函數,可以在標準的Python安裝中使用。

2、在沒有額外的參數的情況下,sorted()函數按照升序對值進行排列,也就是按照從小到大的順序。

3、原始的numbers不會改變,因為sorted()函數提供了一個新的有序的輸出結果,並且不改變原始值的順序。

4、當sorted()函數被調用時,它會提供一個有序的列表作為返回值。

最後一點意味著列表可以使用sorted()函數,並且輸出結果可以立刻賦值給一個變數。

❼ python幾種經典排序方法的實現

class SortMethod:
'''
插入排序的基本操作就是將一個數據插入到已經排好序的有序數據中,從而得到一個新的、個數加一的有序數據,演算法適用於少量數據的排序,時間復雜度為O(n^2)。是穩定的排序方法。
插入演算法把要排序的數組分成兩部分:
第一部分包含了這個數組的所有元素,但將最後一個元素除外(讓數組多一個空間才有插入的位置)
第二部分就只包含這一個元素(即待插入元素)。
在第一部分排序完成後,再將這個最後元素插入到已排好序的第一部分中。
'''
def insert_sort(lists):
# 插入排序
count = len(lists)
for i in range(1, count):
key = lists[i]
j = i - 1
while j >= 0:
if lists[j] > key:
lists[j + 1] = lists[j]
lists[j] = key
j -= 1
return lists
'''
希爾排序 (Shell Sort) 是插入排序的一種。也稱縮小增量排序,是直接插入排序演算法的一種更高效的改進版本。希爾排序是非穩定排序演算法。該方法因 DL.Shell 於 1959 年提出而得名。
希爾排序是把記錄按下標的一定增量分組,對每組使用直接插入排序演算法排序;隨著增量逐漸減少,每組包含的關鍵詞越來越多,當增量減至 1 時,整個文件恰被分成一組,演算法便終止。
'''
def shell_sort(lists):
# 希爾排序
count = len(lists)
step = 2
group = count / step
while group > 0:
for i in range(0, group):
j = i + group
while j < count:
k = j - group
key = lists[j]
while k >= 0:
if lists[k] > key:
lists[k + group] = lists[k]
lists[k] = key
k -= group
j += group
group /= step
return lists
'''
冒泡排序重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。
'''
def bubble_sort(lists):
# 冒泡排序
count = len(lists)
for i in range(0, count):
for j in range(i + 1, count):
if lists[i] > lists[j]:
temp = lists[j]
lists[j] = lists[i]
lists[i] = temp
return lists
'''
快速排序
通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列
'''
def quick_sort(lists, left, right):
# 快速排序
if left >= right:
return lists
key = lists[left]
low = left
high = right
while left < right:
while left < right and lists[right] >= key:
right -= 1
lists[left] = lists[right]
while left < right and lists[left] <= key:
left += 1
lists[right] = lists[left]
lists[right] = key
quick_sort(lists, low, left - 1)
quick_sort(lists, left + 1, high)
return lists
'''
直接選擇排序
第 1 趟,在待排序記錄 r[1] ~ r[n] 中選出最小的記錄,將它與 r[1] 交換;
第 2 趟,在待排序記錄 r[2] ~ r[n] 中選出最小的記錄,將它與 r[2] 交換;
以此類推,第 i 趟在待排序記錄 r[i] ~ r[n] 中選出最小的記錄,將它與 r[i] 交換,使有序序列不斷增長直到全部排序完畢。
'''
def select_sort(lists):
# 選擇排序
count = len(lists)
for i in range(0, count):
min = i
for j in range(i + 1, count):
if lists[min] > lists[j]:
min = j
temp = lists[min]
lists[min] = lists[i]
lists[i] = temp
return lists
'''
堆排序 (Heapsort) 是指利用堆積樹(堆)這種數據結構所設計的一種排序演算法,它是選擇排序的一種。
可以利用數組的特點快速定位指定索引的元素。堆分為大根堆和小根堆,是完全二叉樹。大根堆的要求是每個節點的值都不大於其父節點的值,即 A[PARENT[i]] >= A[i]。
在數組的非降序排序中,需要使用的就是大根堆,因為根據大根堆的要求可知,最大的值一定在堆頂。
'''
# 調整堆
def adjust_heap(lists, i, size):
lchild = 2 * i + 1
rchild = 2 * i + 2
max = i
if i < size / 2:
if lchild < size and lists[lchild] > lists[max]:
max = lchild
if rchild < size and lists[rchild] > lists[max]:
max = rchild
if max != i:
lists[max], lists[i] = lists[i], lists[max]
adjust_heap(lists, max, size)
# 創建堆
def build_heap(lists, size):
for i in range(0, (size/2))[::-1]:
adjust_heap(lists, i, size)
# 堆排序
def heap_sort(lists):
size = len(lists)
build_heap(lists, size)
for i in range(0, size)[::-1]:
lists[0], lists[i] = lists[i], lists[0]
adjust_heap(lists, 0, i)
'''
歸並排序是建立在歸並操作上的一種有效的排序演算法,該演算法是採用分治法 (Divide and Conquer) 的一個非常典型的應用。將已有序的子序列合並,得到完全有序的序列;即先使每個子序列有序,再使子序列段間有序。若將兩個有序表合並成一個有序表,稱為二路歸並。
歸並過程為:
比較 a[i] 和 a[j] 的大小,若 a[i]≤a[j],則將第一個有序表中的元素 a[i] 復制到 r[k] 中,並令 i 和 k 分別加上 1;
否則將第二個有序表中的元素 a[j] 復制到 r[k] 中,並令 j 和 k 分別加上 1,如此循環下去,直到其中一個有序表取完,然後再將另一個有序表中剩餘的元素復制到 r 中從下標 k 到下標 t 的單元。歸並排序的演算法我們通常用遞歸實現,先把待排序區間 [s,t] 以中點二分,接著把左邊子區間排序,再把右邊子區間排序,最後把左區間和右區間用一次歸並操作合並成有序的區間 [s,t]。
'''
def merge(left, right):
i, j = 0, 0
result = []
while i < len(left) and j < len(right):
if left[i] <= right[j]:
result.append(left[i])
i += 1
else:
result.append(right[j])
j += 1
result += left[i:]
result += right[j:]
return result
def merge_sort(lists):
# 歸並排序
if len(lists) <= 1:
return lists
num = len(lists) / 2
left = merge_sort(lists[:num])
right = merge_sort(lists[num:])
return merge(left, right)
'''
基數排序 (radix sort) 屬於「分配式排序」 (distribution sort),又稱「桶子法」 (bucket sort) 或 bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些「桶」中,藉以達到排序的作用,基數排序法是屬於穩定性的排序。
其時間復雜度為 O (nlog(r)m),其中 r 為所採取的基數,而 m 為堆數,在某些時候,基數排序法的效率高於其它的穩定性排序法。
'''
import math
def radix_sort(lists, radix=10):
k = int(math.ceil(math.log(max(lists), radix)))
bucket = [[] for i in range(radix)]
for i in range(1, k+1):
for j in lists:
bucket[j/(radix**(i-1)) % (radix**i)].append(j)
del lists[:]
for z in bucket:
lists += z
del z[:]
return lists
---------------------
作者:CRazyDOgen
來源:CSDN
原文:https://blog.csdn.net/jipang6225/article/details/79975312
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

閱讀全文

與python實現順序串相關的資料

熱點內容
怎麼關閉appstore 瀏覽:472
學編程入門語言 瀏覽:303
安卓機為什麼總是出現升級提示 瀏覽:131
b樹java實現 瀏覽:943
亞馬遜雲伺服器到期了怎麼續費 瀏覽:850
我的世界網易如何在伺服器裡面加光影 瀏覽:284
nat地址訪問外網伺服器 瀏覽:966
怎樣用java編譯一個心形 瀏覽:934
如何使用python中的pygame 瀏覽:836
python實用小工具 瀏覽:24
怎麼在安卓手機上去除馬賽克 瀏覽:235
農行濃情通app怎麼下載 瀏覽:533
怎麼把原文件夾找回來 瀏覽:535
俄羅斯方塊實現python思路 瀏覽:735
漢語拼音英語編譯代碼 瀏覽:501
程序員應具備的能力 瀏覽:606
手機石墨文檔文件夾訪問許可權 瀏覽:656
客戶端如何登陸域文件伺服器 瀏覽:530
兩位數的平方計演算法 瀏覽:930
android圖片分塊 瀏覽:715