Python編程實現list反轉(元素顛倒位置)的方法,代碼如下:
創新互聯-專業網站定制、快速模板網站建設、高性價比鄄城網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式鄄城網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋鄄城地區。費用合理售后完善,十年實體公司更值得信賴。
import?math
def?resv(li):
new?=?[]
if?li:
cnt?=?len(li)
for?i?in?range(cnt):
new.append(li[cnt-i-1])
return?new
def?resv2(li):
li.reverse()
return?li?
def?resv3(li):
hcnt?=?int(math.floor(len(li)/2))
tmp?=?0
for?i?in?range(hcnt):
tmp?=?li[i]
li[i]?=?li[-(i+1)]
li[-(i+1)]?=?tmp
return?li
li?=?[1,?2,?3,?4,?5]?
print?resv(li)
8個超好用內置函數set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()
python中有許多內置函數,不像print那么廣為人知,但它們卻異常的強大,用好了可以大大提高代碼效率。
這次來梳理下8個好用的python內置函數
1、set()
當需要對一個列表進行去重操作的時候,set()函數就派上用場了。
用于創建一個集合,集合里的元素是無序且不重復的。集合對象創建后,還能使用并集、交集、差集功能。
2、eval()之前有人問如何用python寫一個四則運算器,輸入字符串公式,直接產生結果。用eval()來做就很簡單:eval(str_expression)作用是將字符串轉換成表達式,并且執行。
3、sorted()在處理數據過程中,我們經常會用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時候就需要用到sorted() ,它可以對任何可迭代對象進行排序,并返回列表。對列表升序操作:
對元組倒序操作:
使用參數:key,根據自定義規則,按字符串長度來排序:
根據自定義規則,對元組構成的列表進行排序:
4、reversed()如果需要對序列的元素進行反轉操作,reversed()函數能幫到你。reversed()接受一個序列,將序列里的元素反轉,并最終返回迭代器。
5、map()做文本處理的時候,假如要對序列里的每個單詞進行大寫轉化操作。這個時候就可以使用map()函數。
map()會根據提供的函數,對指定的序列做映射,最終返回迭代器。也就是說map()函數會把序列里的每一個元素用指定的方法加工一遍,最終返回給你加工好的序列。舉個例子,對列表里的每個數字作平方處理:
6、reduce()前面說到對列表里的每個數字作平方處理,用map()函數。那我想將列表里的每個元素相乘,該怎么做呢?這時候用到reduce()函數。
reduce()會對參數序列中元素進行累積。第一、第二個元素先進行函數操作,生成的結果再和第三個元素進行函數操作,以此類推,最終生成所有元素累積運算的結果。再舉個例子,將字母連接成字符串。
你可能已經注意到,reduce()函數在python3里已經不再是內置函數,而是遷移到了functools模塊中。這里把reduce()函數拎出來講,是因為它太重要了。
7、filter()一些數字組成的列表,要把其中偶數去掉,該怎么做呢?
filter()函數輕松完成了任務,它用于過濾序列,過濾掉不符合條件的元素,返回一個迭代器對象。filter()函數和map()、reduce()函數類似,都是將序列里的每個元素映射到函數,最終返回結果。我們再試試,如何從許多單詞里挑出包含字母w的單詞。
8、enumerate()這樣一個場景,同時打印出序列里每一個元素和它對應的順序號,我們用enumerate()函數做做看。
enumerate翻譯過來是枚舉、列舉的意思,所以說enumerate()函數用于對序列里的元素進行順序標注,返回(元素、索引)組成的迭代器。再舉個例子說明,對字符串進行標注,返回每個字母和其索引。
#1.字符串、列表、元組均可用此方法?(使用切片的方法)?不修改元素原有內容,將輸出進行賦值
#1.1?字符串
s='nihao'?
s1=s[::-1]
#1.2?列表
lin=["a","b","c"]
print(lin[::-1])
#1.3?元組
tup=("e","f","g","h",2,3,6)
print(tup[::-1])
#2.列表獨有方法
lin=["a","b","c"]
lin.reverse()
print(lin)
題目不允許使用reversed或者[::-1],下面另外提供兩種方法。
1. 反向for循環
def?reverse(text):
ret?=?""
for?i?in?range(len(text)-1,?-1,?-1):
ret?=?ret?+?text[i]
return?ret
print?reverse("#ab@cd!")
2. 遞歸
def?reverse(text):
n?=?len(text)?-?1
if?(n?==?0):
return?text[0]
else:
return?text[n]?+?reverse(text[:n])
print?reverse("#ab@cd!")
作用就是把合理的數據轉換為需要的類型。int()整數,float()浮點數,str()字符串,list()列表,tuple()元組,set()集合……
比如a='12'這個是字符串類型,用int函數a=int(a)這時變量a就是整型,字符串'12'變為了整數12。Python沒有變量聲明的要求,變量的屬性在賦值時確定,這樣變量的類型就很靈活。
有一種題目判斷一個整數是否回文數,用字符串來處理就很簡單
a=1234321#整數
if str(a)==str(a)[::-1]:#借助字符串反轉比較就可以確定是否回文數。
還比如元組b=(1,3,2,4),元組是不可以更新刪除排序成員的,但是列表是可以的,通過列表函數進行轉換來實現元組的更新刪除和排序。
b=(1,3,2,4)
b=list(b)
b.sort()
b=tuple(b)
這時得到的元組b就是一個升序的元組(1,2,3,4)
再比如你要輸入創建整數列表或者整數元組基本上寫法相同,就是用對應的函數來最后處理。
ls=list(map(int,input().split()))#這個就是列表
tup=tuple(map(int,input().split()))#這個就是元組
再比如有個叫集合的,集合有唯一性,可以方便用來去重。
ls=[1,2,3,1,2,3,1,2,3]
ls=list(set(ls))#通過set()去重后,現在的ls里就是[1,2,3]去重后的列表。
a=[1,2,3,4,5,6,7,8,9]
a[2:5]=a[5-1:2-1:-1]
a
[1, 2, 5, 4, 3, 6, 7, 8, 9]
當前題目:python列表反轉函數 python列表翻轉函數
標題鏈接:http://m.kartarina.com/article44/dodsche.html
成都網站建設公司_創新互聯,為您提供域名注冊、網站排名、網站內鏈、電子商務、企業建站、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯