日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python基础技巧总结(五)

發布時間:2023/12/13 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python基础技巧总结(五) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前四期到博客找:https://blog.csdn.net/hebtu666

我們繼續說一些好用的函數

split

Python?split()?通過指定分隔符對字符串進行切片,如果參數 num 有指定值,則僅分隔 num 個子字符串。

語法:

str.split(str="", num=string.count(str))

簡化:

str.split("")

結合第四期所學知識,我們可以寫出這一行代碼

print(" ".join(input().split(" ")[::-1]))

實現功能:給定一個句子(只包含字母和空格),將句子中的單詞位置反轉,單詞用空格分割,單詞之間只有一個空格,前后沒有空格。比如:(1)“hello xiao mi” - >“ mi xiao你好“

?

再舉一例:

將兩個整型數組按照升序合并,并且過濾掉重復數組元素

輸入參數:

int*?pArray1?:整型數組1

intiArray1Num:數組1元素個數

int*?pArray2?:整型數組2

intiArray2Num:數組2元素個數

對于python來說,給個數沒什么卵用。

a,b,c,d=input(),list(map(int,input().split())),input(),list(map(int,input().split())) print("".join(map(str,sorted(list(set(b+d))))))

?

我們把最近的知識結合起來做一道題:

輸入一個int型整數,按照從右向左的閱讀順序,返回一個不含重復數字的新的整數。

result="" for i in input()[::-1]:if i not in result:result+=i print(result)

還有很多具體的簡潔操作,這里就不再舉例子了,多體會吧。

好,我們繼續其它函數。

?

filter

Python內建的filter()函數用于過濾序列。

和map()類似,filter()也接收一個函數和一個序列。和map()不同的是,filter()把傳入的函數依次作用于每個元素,然后根據返回值是True還是False決定保留還是丟棄該元素。

簡單例子,刪掉偶數:

def is_odd(n):return n % 2 == 1list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])) # 結果: [1, 5, 9, 15]

我們可以用所學知識實現埃氏篩:

埃氏篩相關知識:https://blog.csdn.net/hebtu666/article/details/81486370

本代碼非原創:

#先構造一個從3開始的奇數序列: def _odd_iter():n = 1while True:n = n + 2yield n #這是一個生成器,并且是一個無限序列。#篩選函數 def _not_divisible(n):return lambda x: x % n > 0 #生成器 def primes():yield 2it = _odd_iter() # 初始序列while True:n = next(it) # 返回序列的第一個數yield nit = filter(_not_divisible(n), it) # 構造新序列

利用filter()不斷產生篩選后的新的序列

Iterator是惰性計算的序列,所以我們可以用Python表示“全體自然數”,“全體素數”這樣的序列,而代碼非常簡潔。

?

sorted

復制過來的,因為寫的很好很好,相比之下,我自己寫的太差勁了。

>>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5, 9, 36] #可以接收一個key函數來實現自定義的排序,例如按絕對值大小排序: >>> sorted([36, 5, -12, 9, -21], key=abs) [5, 9, -12, -21, 36]

我們再看一個字符串排序的例子:

>>> sorted(['bob', 'about', 'Zoo', 'Credit']) ['Credit', 'Zoo', 'about', 'bob']

默認情況下,對字符串排序,是按照ASCII的大小比較的,由于'Z' < 'a',結果,大寫字母Z會排在小寫字母a的前面。

現在,我們提出排序應該忽略大小寫,按照字母序排序。要實現這個算法,不必對現有代碼大加改動,只要我們能用一個key函數把字符串映射為忽略大小寫排序即可。忽略大小寫來比較兩個字符串,實際上就是先把字符串都變成大寫(或者都變成小寫),再比較。

這樣,我們給sorted傳入key函數,即可實現忽略大小寫的排序:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower) ['about', 'bob', 'Credit', 'Zoo']

要進行反向排序,不必改動key函數,可以傳入第三個參數reverse=True:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True) ['Zoo', 'Credit', 'bob', 'about']

從上述例子可以看出,高階函數的抽象能力是非常強大的,而且,核心代碼可以保持得非常簡潔。

sorted()也是一個高階函數。用sorted()排序的關鍵在于實現一個映射函數。

?

?

基礎技巧總結持續更新。。。。。。

總結

以上是生活随笔為你收集整理的python基础技巧总结(五)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。