abs() divmod() input() open() staticmethod()
成都創(chuàng)新互聯(lián)服務(wù)項目包括張掖網(wǎng)站建設(shè)、張掖網(wǎng)站制作、張掖網(wǎng)頁制作以及張掖網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,張掖網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到張掖省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
all() enumerate() int() ord() str()
any() eval() isinstance() pow() sum()
basestring() execfile() issubclass() print() super()
bin() file() iter() property() tuple()
bool() filter() len() range() type()
bytearray() float() list() raw_input() unichr()
callable() format() locals() reduce() unicode()
chr() frozenset() long() reload() vars()
classmethod() getattr() map() repr() xrange()
cmp() globals() max() reverse() zip()
compile() hasattr() memoryview() round() __import__()
complex() hash() min() set()
delattr() help() next() setattr()
dict() hex() object() slice()
dir() id() oct() sorted()
python模塊中的all,用于模塊導(dǎo)入時限制,如:from module import *
此時被導(dǎo)入模塊若定義了all屬性,則只有all內(nèi)指定的屬性、方法、類可被導(dǎo)入;若沒定義,則導(dǎo)入模塊內(nèi)的所有公有屬性,方法和類。
Python中有許多內(nèi)置函數(shù),不像print、len那么廣為人知,但它們的功能卻異常強大,用好了可以大大提高代碼效率,同時提升代碼的簡潔度,增強可閱讀性
Counter
collections在python官方文檔中的解釋是High-performance container datatypes,直接的中文翻譯解釋高性能容量數(shù)據(jù)類型。這個模塊實現(xiàn)了特定目標(biāo)的容器,以提供Python標(biāo)準(zhǔn)內(nèi)建容器 dict , list , set , 和 tuple 的替代選擇。在python3.10.1中它總共包含以下幾種數(shù)據(jù)類型:
容器名簡介
namedtuple() 創(chuàng)建命名元組子類的工廠函數(shù)
deque 類似列表(list)的容器,實現(xiàn)了在兩端快速添加(append)和彈出(pop)
ChainMap 類似字典(dict)的容器類,將多個映射集合到一個視圖里面
Counter 字典的子類,提供了可哈希對象的計數(shù)功能
OrderedDict 字典的子類,保存了他們被添加的順序
defaultdict 字典的子類,提供了一個工廠函數(shù),為字典查詢提供一個默認值
UserDict 封裝了字典對象,簡化了字典子類化
UserList 封裝了列表對象,簡化了列表子類化
UserString 封裝了字符串對象,簡化了字符串子類化
其中Counter中文意思是計數(shù)器,也就是我們常用于統(tǒng)計的一種數(shù)據(jù)類型,在使用Counter之后可以讓我們的代碼更加簡單易讀。Counter類繼承dict類,所以它能使用dict類里面的方法
舉例
#統(tǒng)計詞頻
fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']
result = {}
for fruit in fruits:
if not result.get(fruit):
result[fruit] = 1
else:
result[fruit] += 1
print(result)
#{'apple': 2, 'peach': 3, 'lemon': 1}下面我們看用Counter怎么實現(xiàn):
from collections import Counter
fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']
c = Counter(fruits)
print(dict(c))
#{'apple': 2, 'peach': 3, 'lemon': 1}顯然代碼更加簡單了,也更容易閱讀和維護了。
elements()
返回一個迭代器,其中每個元素將重復(fù)出現(xiàn)計數(shù)值所指定次。元素會按首次出現(xiàn)的順序返回。如果一個元素的計數(shù)值小于1,elements()將會忽略它。
c = Counter(a=4, b=2, c=0, d=-2)
sorted(c.elements())
['a', 'a', 'a', 'a', 'b', 'b']most_common([n])
返回一個列表,其中包含n個最常見的元素及出現(xiàn)次數(shù),按常見程度由高到低排序。如果n被省略或為None,most_common()將返回計數(shù)器中的所有元素。計數(shù)值相等的元素按首次出現(xiàn)的順序排序:
Counter('abracadabra').most_common(3)
[('a', 5), ('b', 2), ('r', 2)]這兩個方法是Counter中最常用的方法,其他方法可以參考 python3.10.1官方文檔
實戰(zhàn)
Leetcode 1002.查找共用字符
給你一個字符串?dāng)?shù)組words,請你找出所有在words的每個字符串中都出現(xiàn)的共用字符(包括重復(fù)字符),并以數(shù)組形式返回。你可以按任意順序返回答案。
輸入:words = ["bella", "label", "roller"]
輸出:["e", "l", "l"]
輸入:words = ["cool", "lock", "cook"]
輸出:["c", "o"]看到統(tǒng)計字符,典型的可以用Counter完美解決。這道題是找出字符串列表里面每個元素都包含的字符,首先可以用Counter計算出每個元素每個字符出現(xiàn)的次數(shù),依次取交集最后得出所有元素共同存在的字符,然后利用elements輸出共用字符出現(xiàn)的次數(shù)
class Solution:
def commonChars(self, words: List[str]) - List[str]:
from collections import Counter
ans = Counter(words[0])
for i in words[1:]:
ans = Counter(i)
return list(ans.elements())提交一下,發(fā)現(xiàn)83個測試用例耗時48ms,速度還是不錯的
sorted
在處理數(shù)據(jù)過程中,我們經(jīng)常會用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時候就需要用到sorted(),它可以對任何可迭代對象進行排序,并返回列表
對列表升序操作:
a = sorted([2, 4, 3, 7, 1, 9])
print(a)
# 輸出:[1, 2, 3, 4, 7, 9]對元組倒序操作:
sorted((4,1,9,6),reverse=True)
print(a)
# 輸出:[9, 6, 4, 1]使用參數(shù):key,根據(jù)自定義規(guī)則,按字符串長度來排序:
fruits = ['apple', 'watermelon', 'pear', 'banana']
a = sorted(fruits, key = lambda x : len(x))
print(a)
# 輸出:['pear', 'apple', 'banana', 'watermelon']all
all() 函數(shù)用于判斷給定的可迭代參數(shù)iterable中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。元素除了是 0、空、None、False外都算True。注意:空元組、空列表返回值為True。
all(['a', 'b', 'c', 'd']) # 列表list,元素都不為空或0
True
all(['a', 'b', '', 'd']) # 列表list,存在一個為空的元素
False
all([0, 1,2, 3]) # 列表list,存在一個為0的元素
False
all(('a', 'b', 'c', 'd')) # 元組tuple,元素都不為空或0
True
all(('a', 'b', '', 'd')) # 元組tuple,存在一個為空的元素
False
all((0, 1, 2, 3)) # 元組tuple,存在一個為0的元素
False
all([]) # 空列表
True
all(()) # 空元組
Trueany函數(shù)正好和all函數(shù)相反:判斷一個tuple或者list是否全為空,0,F(xiàn)alse。如果全為空,0,F(xiàn)alse,則返回False;如果不全為空,則返回True。
F-strings
在python3.6.2版本中,PEP 498提出一種新型字符串格式化機制,被稱為 “字符串插值” 或者更常見的一種稱呼是F-strings,F(xiàn)-strings提供了一種明確且方便的方式將python表達式嵌入到字符串中來進行格式化:
s1='Hello'
s2='World'
print(f'{s1} {s2}!')
# Hello World!在F-strings中我們也可以執(zhí)行函數(shù):
def power(x):
return x*x
x=4
print(f'{x} * {x} = {power(x)}')
# 4 * 4 = 16而且F-strings的運行速度很快,比傳統(tǒng)的%-string和str.format()這兩種格式化方法都快得多,書寫起來也更加簡單。
本文主要講解了python幾種冷門但好用的函數(shù),更多內(nèi)容以后會陸陸續(xù)續(xù)更新~
python的內(nèi)建函數(shù)即是python自帶的函數(shù),這種函數(shù)不需要定義,并且不同的內(nèi)建函數(shù)具有不同的功能,可以直接使用。
以下是部分內(nèi)建函數(shù)用法及說明
1、abs(),返回數(shù)字的絕對值。
2、all(),如果集合中所有元素是true或集合為空集合,返回True。
3、any(),如果集合中有一項元素是true,返回True;空集合為False
4、ascii(), 返回一個表示對象的字符串。
5、bin(),將整數(shù)轉(zhuǎn)換為前綴為“0b”的二進制字符串。
6、bool(),返回一個布爾值,即True或者之一False。
7、bytearray(),返回一個新的字節(jié)數(shù)組。
8、callable(對象)判斷對象參數(shù)是否可被調(diào)用(可被調(diào)用指的是對象能否使用()括號的方法調(diào)用)
9、chr(),返回表示Unicode代碼點為整數(shù)i的字符的字符串。與ord()函數(shù)相反。
推薦學(xué)習(xí)《python教程》
10、classmethod,將方法轉(zhuǎn)換為類方法。
11、compile,將源代碼編譯為代碼或AST對象。代碼對象可以由exec()或執(zhí)行eval()。 source可以是普通字符串,字節(jié)字符串或AST對象。
12、dic(),創(chuàng)建一個字典
13、divmod(a,b),將兩個數(shù)作為參數(shù),并在使用整數(shù)除法時返回由商和余數(shù)組成的一對數(shù)
14、enumerate(iterable,start = 0)
enumerate是枚舉、列舉的意思
對于一個可迭代的(iterable)/可遍歷的對象(如列表、字符串),enumerate將其組成一個索引序列,利用它可以同時獲得索引和值
enumerate多用于在for循環(huán)中得到計數(shù)
15、eval,將一個字符串變?yōu)樽值?/p>
16、exec(object [, globals[, locals]])exec語句用來執(zhí)行儲存在字符串或文件中的Python語句
17、filter(功能,可迭代)
filter函數(shù)用于過濾序列
filter()把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是True還是False決定保留還是丟棄該元素。
all和any的方法,為了更好的理解,還是建議傳說列表,對列表內(nèi)的值進行修改
any函數(shù)是python的內(nèi)置函數(shù),意即只要迭代器中只要有一個值滿足真,即返回True,說它是短路運算,便舉這個例子,是為了告訴你,在第四行執(zhí)行any函數(shù)時,函數(shù)按g列表的順序查找真值,當(dāng)找到7時,就不再繼續(xù)查找,因為此時條件已經(jīng)成立,于是直接返回,不再把整個迭代器執(zhí)行完。于是例子用了第五行代碼告訴你,迭代器此時只執(zhí)行到索引值為3的地方,所以調(diào)用next函數(shù),才會打印出索引值為4的value=8
當(dāng)前題目:python中all函數(shù),python中all函數(shù)的用法
文章源于:http://www.yijiale78.com/article0/dsgodio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、虛擬主機、品牌網(wǎng)站建設(shè)、網(wǎng)站維護、搜索引擎優(yōu)化、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)