builtins模塊常用函數(shù)合集【python3內(nèi)置函數(shù)】

1.abs
參數(shù):x 數(shù)字表達(dá)式
描述:求參數(shù)的絕對值
例子:

    print(abs(-1))               # 1
    print(abs(-9999.99))         # 9999.99
    print(abs(True-False))       # 1
    print(abs(3.0+4.0j))         # 5.0

對虛數(shù)求絕對值相當(dāng)于是求虛數(shù)的模,虛數(shù)沒有絕對值的概念
bool類型True代表1,F(xiàn)alse代表0

2.all
參數(shù):iterable 可迭代對象
描述:判斷可迭代對象中的元素調(diào)用bool()函數(shù)后的值是否都為True,如果包含F(xiàn)alse則返回False,否則返回True
例子:

    print(all([1,2,4,6,8,0]))  # False
    print(all(''))  # True
    print(all([]))  # True
    print(all(()))  # True
    print(all({}))  # True
    print(bool(''))  # False
    print(bool([]))  # False
    print(bool())  # False
    print(bool({}))  # False
    print(bool(0))  # False
    print(bool(False))  # False
    print(bool(None))  # False

bool()函數(shù)將int、float、str、list、tuple、dict等轉(zhuǎn)為bool類型,如果待轉(zhuǎn)換元素為0、空、None、False則轉(zhuǎn)換為False否則轉(zhuǎn)換為True

3.any
參數(shù):iterable 可迭代對象
描述:判斷可迭代對象中的元素調(diào)用bool()函數(shù)后的值是否含有True,如果含有True則返回True,否則返回False
例子:

    print(any([0,0]))  # False
    print(any([0,1]))  # True

4.ascii
參數(shù):obj
描述:返回對象的ascii表示,程序執(zhí)行的過程中會(huì)調(diào)用repr函數(shù)獲取該對象的字符串表示,并將該字符串中不是ascii字符轉(zhuǎn)換為使用\x、\u或\U編碼的字符
例子:

    print(ascii('x'))
    jelly = Dog('果凍','7個(gè)月了','白色',10)
    print(repr(jelly))  # 我是比熊aaa 我非常happy
    print(ascii(jelly))  # \u6211\u662f\u6bd4\u718aaaa \u6211\u975e\u5e38happy
    print(ascii('我是比熊aaa 我非常happy'))  # '\u6211\u662f\u6bd4\u718aaaa \u6211\u975e\u5e38happy'

5.bin
參數(shù):number整數(shù)
描述:將十進(jìn)制的整數(shù)轉(zhuǎn)為二進(jìn)制表示
例子:

    print(bin(27))  # 0b11011
    print(bin(-11))  # 0b11011

6.callable
參數(shù):obj 對象
描述:判斷對象是否能像函數(shù)一樣調(diào)用,如果對象實(shí)現(xiàn)了call魔法方法,則是可以被調(diào)用的,否則返回False
例子:

# 類定義部分:
class Dog():
    # 對應(yīng)callable內(nèi)置函數(shù)
    def __call__(self, *args, **kwargs):
        return args
# 調(diào)用部分:
'''
在指定__call__之前
print(callable(jelly))  # False
'''
    print(callable(jelly))  # True
    print(jelly(1,2))  # (1, 2)

7.chr
參數(shù):i 整型
描述:根據(jù)unicode字符列表通過十進(jìn)制整數(shù)查找Unicode字符
例子:

print(chr(101))  # e

8.compile
參數(shù):

  • source: 源代碼可以表示一個(gè)Python模塊、語句或表達(dá)式。只能為str或bytes或AST對象【Abstract Syntax Trees的首字母縮寫,是源碼到字節(jié)碼的一種中間產(chǎn)物為抽象語法樹,可以直接通過ast的方法去編譯可執(zhí)行代碼】
  • filename: 該參數(shù)的作用只是在執(zhí)行代碼報(bào)錯(cuò)或是打印返回值時(shí)提供該參數(shù)對應(yīng)的信息。一般按照約定來說,如果source是從文件中讀取的字符串則filename存文件名;如果source為python語句,則存可以標(biāo)識代碼的字符串,如果source是ast對象,可以存標(biāo)識該對象的字符串
  • mode: 指定編譯代碼的種類,可以指定為:
    1. exec:如果是一整個(gè)模塊或者多行python語句,需要指定為exec
    2. eval:如果是單行表達(dá)式可以指定為eval
    3. single:如果是單行交互式語句例如input需要指定為single
  • flags: 參數(shù),可以是任何映射對象
    dont_inherit參數(shù)如果為真,則停止編譯繼承 在代碼調(diào)用中生效的任何future語句的效果 編譯;如果這些語句不存在或不正確,則會(huì)影響編譯, 除了明確指定的任何特性之外。

flags和dont_inherit還不是很明白是做什么的,先放著,搞懂了再補(bǔ)上

描述:將源代碼編譯為可由exec()或eval()執(zhí)行的代碼對象。
返回值類型為CodeType

例子:

    with open('運(yùn)算符.py') as f:
        # source_bytes = bytes(f.read().encode())  # bytes類型,這里也可以直接f.read()將獲取到的字符串傳入
        file = compile(source_bytes,'運(yùn)算符.py','exec')
        exec(file)
    code = compile('x+y','str','eval')
    print(eval(code,{'x':1},{'y':2}))  # 3

9.delattr
參數(shù):
object: 注意如果要?jiǎng)h除對象屬性,這里填實(shí)例對象名。如果要?jiǎng)h除類屬性,這里填類名
name: 對象或類中的某個(gè)屬性
描述:從給定對象中刪除指定屬性 相當(dāng)于del object.name
??幾種情況:
類代碼:

class Dog():
    length = 50
    # 胖了多少斤
    set_height = -1
    def __init__(self,name,age,color,length):
        self.name = name
        self.age = age
        self.color = color
        self.length = length
# 實(shí)例化對象部分:
    jelly = Dog('果凍', '7個(gè)月了', '白色', 70)
  1. 類中定義了屬性,對象初始化時(shí)沒有同名屬性被賦值
    例子:
'''
1. 刪除類屬性,刪除后無論是實(shí)例名調(diào)用屬性還是類名調(diào)用屬性都報(bào)錯(cuò)
'''
    print(jelly.set_height)  # -1
    delattr(Dog,'set_height')
    print(jelly.set_height)   # AttributeError: 'Dog' object has no attribute 'set_height'
    print(Dog.set_height)  # AttributeError: type object 'Dog' has no attribute 'set_height'
'''
2. 刪除實(shí)例屬性,刪除時(shí)報(bào)錯(cuò)
'''
    print(jelly.set_height)  # -1
    delattr(jelly, 'set_height')  # AttributeError: set_height
  1. 類中定義了屬性,對象初始化時(shí)也被賦值新的值
    例子:
'''1. 刪除類屬性,類名調(diào)用屬性報(bào)錯(cuò),對象調(diào)用屬性輸出為對象初始化時(shí)賦的值'''
    print(jelly.length)  # 70
    delattr(Dog,'length')
    print(jelly.length)  # 70
    print(Dog.length)  # AttributeError: type object 'Dog' has no attribute 'length'
'''2. 刪除實(shí)例屬性,都不報(bào)錯(cuò),刪除后輸出的都是類定義時(shí)的默認(rèn)屬性'''
    print(jelly.length)  # 70
    delattr(jelly,'length')
    print(Dog.length)  # 50
    print(jelly.length)  # 50
  1. 對象初始化時(shí)賦值了一個(gè)對象屬性,類中沒有定義的屬性不能使用類名去調(diào)用。所以這種情況只能用對象名去刪除,刪除后再調(diào)用會(huì)報(bào)錯(cuò)
    例子:
    print(jelly.name)  # 果凍
    delattr(jelly,'name')
    print(jelly.name)  # AttributeError: 'Dog' object has no attribute 'name'

10.divmod
參數(shù):x、y
描述:函數(shù)返回的結(jié)果為(x//y,x%y)的元組
例子:

    print(divmod(4.1,0.5))  # (8.0, 0.09999999999999964)
    print(4.1 // 0.5)  # 8.0
    print(4.1 % 0.5)  # 0.09999999999999964

11.eval
參數(shù):
__source:表示一個(gè)python表達(dá)式的字符串或compile函數(shù)返回的代碼對象
__globals:全局變量,若指定則必須是字典
__locals:局部變量,可以是任何映射, locals默認(rèn)為globals的值。
如果既指定了globals又指定了locals,則以局部變量為主,如果局部變量不存在則向上著了全局變量。如果表達(dá)式為print語句則是沒有返回值的
描述:
例子:

    eval('print(x) if x>5 else print(y)',{'x':10,'y':20},{'x':15,'y':20})  # 15
    print(eval('print(x) if x>5 else print(y)',{'x':10,'y':20},{'x':15,'y':20}))  # None
    print(eval('input("請輸入一個(gè)整數(shù)")'))  # 2

12.exec
參數(shù):
__source:表示一個(gè)或多個(gè)python語句的字符串或compile函數(shù)返回的代碼對象
__globals:全局變量,若指定則必須是字典
__locals:局部變量,可以是任何映射, locals默認(rèn)為globals的值。
如果既指定了globals又指定了locals,則以局部變量為主,如果局部變量不存在則向上著了全局變量
描述:
例子:

exec('print(x) if x>5 else print(y)',{'x':10,'y':20},{'x':15,'y':20})  # 15
    game = '''
print('我是一段復(fù)雜的代碼哦~')
age = int(input('歡迎來到網(wǎng)吧,請出示您的身份證'))
if age >= 18:
    print('您的年齡是%d歲,按規(guī)定您可以進(jìn)入,歡迎光臨'%age)
else:
    print('抱歉,您的年齡是%d,不滿十八歲不能入內(nèi)'%age)  
    '''
    exec(game)
    '''
    控制臺輸出結(jié)果為:
    我是一段復(fù)雜的代碼哦~
    歡迎來到網(wǎng)吧,請出示您的身份證12
    抱歉,您的年齡是12,不滿十八歲不能入內(nèi)
    '''

注意:這兩個(gè)都支持控制臺交互的python語句,比如input

eval和exec的區(qū)別:
1. eval的source只能是一個(gè)python表達(dá)式,而exec支持一個(gè)或多個(gè)python代碼塊
2. eval有返回值,返回值為表達(dá)式的結(jié)果。exec沒有返回值

python中的映射類型除了字典還有其他的嗎?如果沒有,為什么局部變量不直接指定必須是字典類型,而是任何映射類型都可以呢?

13.getattr
參數(shù):
o:對象名
name:屬性名或類名
default:默認(rèn)值
描述:獲取對象或類的屬性,當(dāng)指定默認(rèn)值時(shí),若屬性不存在則返回默認(rèn)值,如果不指定默認(rèn)值則報(bào)錯(cuò)
例子:

    print(getattr(jelly, 'halo', 'xixi'))  # xixi
    print(getattr(jelly,'length','xixi'))  # 70
    print(getattr(jelly,'love'))  # AttributeError: 'Dog' object has no attribute 'love'
    print(getattr(Dog, 'halo', 'xixi'))  # xixi
    print(getattr(Dog,'length','xixi'))  # 50
    print(getattr(Dog,'halo'))  # AttributeError: type object 'Dog' has no attribute 'halo'

setattr
參數(shù):
obj:對象名
name:屬性名或類名
value:值
描述:給對象或類設(shè)置屬性值。若屬性存在則覆蓋,屬性不存在則新建
例子:

    setattr(Dog,'length',23)  # 已存在的屬性,定義類時(shí)定義的該屬性的值為50
    print(getattr(Dog,'length'))  # 23
    setattr(Dog, 'type', '比熊')
    print(getattr(Dog, 'type'))  # 比熊
    setattr(jelly, 'length', 37)  # 已存在的屬性,定義類時(shí)定義的該屬性的值為50
    print(getattr(jelly, 'length'))  # 37
    setattr(jelly, 'haha', 'lala')
    print(getattr(jelly, 'haha'))  # lala

14.globals
參數(shù):無
描述:以字典的形式返回當(dāng)前位置的全部全局變量
例子:

print(globals())
    '''
    {
    '__name__': '__main__', 
    '__doc__': None, 
    '__package__': None,
    '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7f9af80c7f10>,
    '__spec__': None, 
    '__annotations__': {},
    '__builtins__': <module 'builtins' (built-in)>,
    '__file__': '/Users/shilingli/workspace/PycharmProjects/pythonProject/common/博客練習(xí)/常用函數(shù)合集練習(xí).py', 
    '__cached__': None, 
    'ast': <module 'ast' from '/Users/shilingli/software/anaconda/anaconda3/python.app/Contents/lib/python3.8/ast.py'>, 
    '運(yùn)算符': <module '博客練習(xí).運(yùn)算符' from '/Users/shilingli/workspace/PycharmProjects/pythonProject/common/博客練習(xí)/運(yùn)算符.py'>, 
    'Dog': <class '博客練習(xí).tmp.Dog'>, 
    'jelly': <博客練習(xí).tmp.Dog object at 0x7f9af81a5310>
    }
    '''

返回值里的特殊全局變量將會(huì)在寫完這幾篇博客后搞明白另起一篇博客寫

15.hasattr
參數(shù):
obj: 對象名或類名
name: 屬性名
描述:返回對象或者類是否含有指定屬性
例子:

    print(hasattr(jelly,'hala'))  # False
    print(hasattr(jelly, 'length'))  # True
    print(hasattr(jelly,'set_height'))  # True
    print(hasattr(Dog, 'hala'))  # False
    print(hasattr(Dog, 'length'))  # True

16.hash
參數(shù):obj:對象
描述:返回對象的hash值,可以通過對象所在類的_hash_函數(shù)更改
例子:

類代碼:
class Dog():
    length = 50
    # 胖了多少斤
    set_height = -1
    def __init__(self,name,age,color,length):
        self.name = name
        self.age = age
        self.color = color
        self.length = length
    def __del__(self):
        # print('拜拜啦,我要去睡覺覺了')
        pass
    def __hash__(self):
        return 88
調(diào)用代碼:
# 這是指定hash魔法函數(shù)之前的輸出
    print(hash(jelly))  # 8788014796081
    print(hash(jelly))  # 88

17.help
參數(shù):obj對象
描述:幫助命令,用于查看函數(shù)或者模塊用途的詳細(xì)說明,如果直接print(help())會(huì)跳轉(zhuǎn)到命令行界面,直接輸入要查詢的函數(shù)名返回函數(shù)源碼處的注釋
例子:

print(help())
'''
控制臺輸出:
help> format
Help on built-in function format in module builtins:

format(value, format_spec='', /)
    Return value.__format__(format_spec)
    
    format_spec defaults to the empty string.
    See the Format Specification Mini-Language section of help('FORMATTING') for
    details.
和print(help('format'))打印出來的內(nèi)容是一樣的
'''

18.hex
參數(shù):number整數(shù)
描述:將一個(gè)整數(shù)轉(zhuǎn)換為十六進(jìn)制,十六進(jìn)制的數(shù)為字符串形式,以ox開頭
十六進(jìn)制以0~9和AF(af)表示,AF(af)代表10~15

十進(jìn)制轉(zhuǎn)十六進(jìn)制的公式:
將十進(jìn)制數(shù)除以16得到商和余數(shù),再將商不斷除以16,記錄每次的余數(shù),直到商為0,將記錄的余數(shù)從小到大排列就是十六進(jìn)制的數(shù)了

例子:

print(hex(19))  # 0x13
    '''
    1 19除以16 商為1余數(shù)為3
    2 1除以16  商為0余數(shù)為1
    到第二步商為0,不再循環(huán)除以16,將余數(shù)從小到大排列為13,加上十六進(jìn)制的標(biāo)志字符串0x則返回值為0x13
    '''

19.id
參數(shù):obj:對象
描述:返回對象的內(nèi)存地址,可以保證同時(shí)執(zhí)行的對象是唯一的
例子:

    a = [1, 2, 3, 4]
    b = [1, 2, 3, 4]
    print(id(a))  # 140233367750784
    print(id(b))  # 140233367750528
    print(id(jelly))  # 140233099039504
    print(id([1, 2, 3, 4]))  # 140233367744448
    print(id([1, 2, 3, 4])) # 140233367744448
    print(id(Dog))  # 140233287151536
    print(id(Dog))  # 140233287151536

之前在調(diào)試代碼時(shí),曾打印過兩次沒有給變量賦值的列表,當(dāng)時(shí)很詫異為什么打印出來的內(nèi)存地址是一樣的,一度懷疑我是用錯(cuò)了函數(shù),或者是我哪寫的不對。今天恍然大悟!原來我打印的是類,直接打印沒有賦值的列表相當(dāng)于打印的是類而不是對象。而id函數(shù)存在的意義是保證執(zhí)行的對象是唯一的,而對象是類的實(shí)例化對象,同一個(gè)類初始化出來的對象的內(nèi)存地址肯定是要唯一的,但類的內(nèi)存地址卻是相同的。給列表賦值給ab變量,則ab才是對象,內(nèi)存地址才會(huì)不同

20.input
參數(shù):obj:需要打印到控制臺的輸入提示信息
描述:返回字符串,接收用戶輸入的任何信息,但最后的換行只是結(jié)束本次輸入并不會(huì)被要返回的字符串接收
例子:

    name = input('你叫什么?')
    print(type(name))
    print(name)
    '''
    控制臺的輸出結(jié)果:
    你叫什么?jelly
    <class 'str'>
    jelly
    '''

21.isinstance
參數(shù):
obj:要判斷的對象
class or tuple:類或者含有類型的元組,若命中元組中的任意一個(gè)都返回True
描述:判斷一個(gè)對象是否為指定類型
例子:

類定義部分代碼:
class Cat(Dog):
    def __init__(self,name,age,color,length):
        self.name = name
        self.age = age
        self.color = color
        self.length = length
    def __str__(self):
        return self.name
調(diào)用部分代碼:
    jeck = Cat('杰瑞','3個(gè)月了','橘色',20)
    print(isinstance(jeck,Dog))  # True
    print(isinstance(jeck,(Dog,int)))  # True
    print(type(jeck))  # <class '博客練習(xí).tmp.Cat'>
    '''
    type函數(shù)只能返回該對象所在類是哪個(gè),并沒有繼承的層級關(guān)系
    '''

22.issubclass
參數(shù):
cls:類
class or tuple:類名或包含類的元祖
描述:判斷參數(shù)類是否為指定類的子類,若元組中包含該類的子類則返回True
例子:

    print(issubclass(Cat,(Dog,int)))  # True

23.len
參數(shù):obj對象
描述:返回對象的長度,可以通過對象的_len_魔法方法定義返回的長度值,若對象沒有該魔法方法則拋異常
例子:

# 類定義部分:
class Dog():
    length = 50
    # 胖了多少斤
    set_height = -1
    def __init__(self,name,age,color,length):
        self.name = name
        self.age = age
        self.color = color
        self.length = length
    def __del__(self):
        # print('拜拜啦,我要去睡覺覺了')
        pass
    def __hash__(self):
        return 88
    def __len__(self):
        return self.length
# 調(diào)用部分:
 print(len(jelly))  # 70

24.locals
參數(shù):無
描述:以字典的形式返回當(dāng)前位置的全部局部變量。

25.max
參數(shù):
*args:待比較對象
key: key,指定比對函數(shù)
描述:計(jì)算并返回待比較對象中的最大值
例子:

  print(max([1,2,5,9,10],[2,6,4,9,12]))  # [2, 6, 4, 9, 12]默認(rèn)比較第一位,若一樣則順延往后比較
  print(max([1,2,5,9,10],[2,6,4,9,12],key=lambda x:x[2]))  # [1, 2, 5, 9, 10]

26.min
參數(shù):
*args:待比較對象
key: key,指定比對函數(shù)
描述:計(jì)算并返回待比較對象中的最小值
例子:

  print(min([1,2,5,9,10],[2,6,4,9,12]))  # [1, 2, 5, 9, 10]
  print(min([1,2,5,9,10],[2,6,4,9,12],key=lambda x:x[2]))  # [2, 6, 4, 9, 12]

27.next
參數(shù):iter:迭代器
描述:返回可迭代器的下一個(gè)對象
例子:

    itera = iter([1,2,5,8,0,10])
    print(next(itera))  # 1
    print(next(itera))  # 2
    print(next(itera))  # 5
    print(next(itera))  # 8
    print(next(itera))  # 0
    print(next(itera))  # 10
    print(next(itera))  # 當(dāng)沒有下一個(gè)元素時(shí)報(bào)錯(cuò):StopIteration

未生成迭代器的可迭代對象例如list是不可以作為參數(shù)使用的。這里必須是迭代器,或者使用yeild關(guān)鍵字的自定義函數(shù)也可以作為參數(shù)使用

28.iter
參數(shù):iterable:可迭代對象
描述:將可迭代對象利用該函數(shù)生成迭代器
例子:

    print(iter('hello'))  # <str_iterator object at 0x7f8de8245310>
    print(iter([1,2,5,8,0,10]))  # <list_iterator object at 0x7f8de8245970>
    print(iter((1,2,5,8,0,10)))  # <tuple_iterator object at 0x7f8de8245970>
    print(iter({1,2,5,8,0,10}))  # <set_iterator object at 0x7f8de83cf880>

29.oct
參數(shù):number:整數(shù)
描述:將指定整數(shù)轉(zhuǎn)換為八進(jìn)制的字符串形式,0o【零歐】為python中對八進(jìn)制字符串的前綴
例子:

print(oct(181))  # 0o265

30.open
涉及內(nèi)容較多,之前專門寫過一篇講解open函數(shù)的博客,地址:
https://blog.csdn.net/qq_43201025/article/details/119357482?spm=1001.2014.3001.5501

31.ord
參數(shù):c:字符
描述:返回字符對應(yīng)的ascii或unicode數(shù)值
例子:

print(ord('a'))  # 97

ord和chr:
ord是輸入字符返回對應(yīng)的ascii值,值為整數(shù)
chr是輸入ascii值正數(shù),返回ascii字符
結(jié)合使用返回本身print(ord(chr(97))) # 97

32.pow
參數(shù):base**exp%mod
base:x
exp:y
mod:z
描述:如果兩個(gè)參數(shù)為返回x的y次方的計(jì)算結(jié)果,如果三個(gè)參數(shù),則返回x的y次方計(jì)算完后再對z取余
例子:

    print(pow(2,3))  # 8
    print(pow(2,3,5))  # 3

33.print
參數(shù):
*args 為要打印的值,為不定長參數(shù),參數(shù)之間以逗號分隔,打印后的值之間以空格隔開
sep 當(dāng)輸入多個(gè)打印的值時(shí),通過該參數(shù)改變輸出的各個(gè)值之間分割方式, 默認(rèn)是空格,改變該值即可自定義
end 結(jié)束標(biāo)識符,這里的\n為轉(zhuǎn)義字符,代表換行,后面會(huì)介紹都有哪些轉(zhuǎn)義字符
file 設(shè)置輸出設(shè)備,即將結(jié)果打印到什么地方,默認(rèn)只在控制臺輸出,也可以設(shè)置file= 文件后就會(huì)把內(nèi)容存到指定文件中
描述:打印輸出
例子:

    print('hello world')  # hello world

34.repr
參數(shù):obj 對象
描述:返回對象的規(guī)范字符串表示形式,該字符串為對象的魔法方法_repr_中的返回值
例子:

類定義部分:
class Dog():
    def __repr__(self):
        return '我是比熊aaa 我非常happy'
# 調(diào)用部分
    jelly = Dog('果凍','7個(gè)月了','白色',10)
    print(repr(jelly))  # 我是比熊aaa 我非常happy

35.round
參數(shù):number:浮點(diǎn)數(shù)
描述:對輸入的浮點(diǎn)數(shù)采用四舍六入五成雙

所謂四舍六入五成雙分為:

  1. 如果浮點(diǎn)數(shù)的小數(shù)第一位小于等于4則直接舍棄
  2. 如果浮點(diǎn)數(shù)的小數(shù)第一位大于等于6直接進(jìn)一
  3. 如果浮點(diǎn)數(shù)的小數(shù)第一位等于5:
    1. 小數(shù)5后面還有其他值,則進(jìn)一
    2. 小數(shù)5的后面沒有其他值【奇進(jìn)偶不進(jìn)原則】
    1. 小數(shù)5前面的數(shù)為奇數(shù),進(jìn)一
    2. 小數(shù)5前面的數(shù)為偶數(shù),舍棄
    例子:
    print(round(4.4))  # 4
    print(round(4.6))  # 5
    print(round(4.51))  # 5
    print(round(4.5))  # 4
    print(round(3.5))  # 4

36.sorted
參數(shù):
iterable:可迭代對象
key:排序函數(shù)
reverse:是否降序排序,默認(rèn)為False,也就是默認(rèn)升序排序
描述:
例子:

    '''
    [1,7,17,9,11,19]
    x%7后的序列為:[1,0,3,2,4,5]
    所以結(jié)果為:[7,1,9,17,11,19]
    '''
    print(sorted([1,7,17,9,11,19],key=lambda x:x%7,reverse=False))  # [7, 1, 9, 17, 11, 19]

37.sum
參數(shù):
iterable:可迭代對象
i:指定相加的值,需要和前面可迭代對象中的元素的值的類型保持一致。int和folat都算number類型
描述:
例子:

print(sum([1,2,5,8,10]))  # 26
print(sum([1,2,5,8,10],10))  # 36
print(sum([[1, 2],[5, 8]],[3,4]))  # [3, 4, 1, 2, 5, 8]

38.vars
參數(shù):obj 對象或類名
描述:返回對象或類的屬性字典對象{屬性名1:屬性值1,屬性名2:屬性值2……}
例子:

    print(vars(jelly))  # {'name': '果凍', 'age': '7個(gè)月了', 'color': '白色', 'length': 70}

注意:如果傳入的參數(shù)是對象名的話,返回的對象的屬性只有被初始化過的,不論是init函數(shù)中初始化賦值或者是在調(diào)用處進(jìn)行賦值過的屬性都可以被打印出來,但是沒有被對象初始化過的類屬性是不會(huì)被打印的

39.format
參數(shù):
value:對象
format_sepc:待格式化的字符串
描述:返回對象的_format_方法的返回值
例子:

類定義部分代碼:
class Dog():
    length = 50
    # 胖了多少斤
    set_height = -1
    def __init__(self,name,age,color,length):
        self.name = name
        self.age = age
        self.color = color
        self.length = length
    def __del__(self):
        # print('拜拜啦,我要去睡覺覺了')
        pass
    def __hash__(self):
        return 88
    def __len__(self):
        return self.length

    def __format__(self, format_spec):
        return format_spec.replace('{}',self.name)
調(diào)用部分代碼:
jelly = Dog('果凍', '7個(gè)月了', '白色', 70)
print(format(jelly,'我叫{},我喜歡你'))  # 我叫果凍,我喜歡你

40.dir
參數(shù):o 對象【可選】
描述:返回字符串列表。返回當(dāng)前范圍內(nèi)的變量、方法和定義的類型列表;帶參數(shù)時(shí),返回參數(shù)的屬性、方法列表。如果參數(shù)中的包含方法_dir_(),該方法將被調(diào)用。如果參數(shù)不包含_dir_(),該方法將最大限度地收集參數(shù)信息。
例子:

類定義部分代碼:
from typing import Iterable
class Dog():
    length = 50
    # 胖了多少斤
    set_height = -1
    def __init__(self,name,age,color,length):
        self.name = name
        self.age = age
        self.color = color
        self.length = length
    def __del__(self):
        # print('拜拜啦,我要去睡覺覺了')
        pass
    def __hash__(self):
        return 88
    def __len__(self):
        return self.length
    def __dir__(self) -> Iterable[str]:
        return iter(['果凍','jelly'])
調(diào)用部分代碼:
    print(dir(jelly))  # ['jelly', '果凍']
  1. zip
    參數(shù):
    iterable: 一個(gè)或多個(gè)可迭代對象
    描述: 將多個(gè)可迭代對象的相同位置的元素打包成一個(gè)元組,如果各迭代對象的元素個(gè)數(shù)不一致,取長度最短,利用 * 號操作符,可以將元組解壓為列表。
    例子:
'''zip拉鏈操作'''
    x = [1,2,3,4,5,6,7]
    y = ['a','b','c','d','e','f']
    z = zip(x,y)   # [(1, 'a') (2, 'b') (3, 'c') (4, 'd') (5, 'e') (6, 'f')]
    # print(*z)  # 直接打印*z 相當(dāng)于是遍歷的過程 結(jié)果為:(1, 'a') (2, 'b') (3, 'c') (4, 'd') (5, 'e') (6, 'f')
    zz = zip(*z)  # 將*z 傳參相當(dāng)于是遍歷了 z 的每一個(gè)元素當(dāng)做一個(gè)參數(shù)
    print([i for i in zz])
    for i in zip(x,y):
        print(i)
    for i,j in zip(x,y):
        print('{%s}---->{%s}'%(i,j))
    '''
    控制臺輸出:
    [(1, 2, 3, 4, 5, 6), ('a', 'b', 'c', 'd', 'e', 'f')]
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
(5, 'e')
(6, 'f')
{1}---->{a}
{2}---->
{3}---->{c}
{4}---->u0z1t8os
{5}---->{e}
{6}---->{f}
    '''

zip 是取長度最短,如果要取長度最長使用 zip_longest 函數(shù),長度不足的列表補(bǔ) None

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容