python内置函数整理

最近在看python文档的过程中,发现还有好多有用的内置函数自己竟然不熟悉。于是在此做出如下整理。

bin/hex/oct,bin转换为二进制0b,hex转换为16进制0x,oct转换为八进制0o。

>>> bin(3)
'0b11'
>>> bin(-10)
'-0b1010'

>>> format(14, '#b'), format(14, 'b')
('0b1110', '1110')
>>> f'{14:#b}', f'{14:b}'
('0b1110', '1110')

>>> hex(255)
'0xff'
>>> hex(-42)
'-0x2a'

>>> '%#x' % 255, '%x' % 255, '%X' % 255
('0xff', 'ff', 'FF')
>>> format(255, '#x'), format(255, 'x'), format(255, 'X')
('0xff', 'ff', 'FF')
>>> f'{255:#x}', f'{255:x}', f'{255:X}'
('0xff', 'ff', 'FF')

chr /ord

chr(97) #out,'a'
ord('a') #out,97

delattr/setattr/getattr,分别为删除属性、设置属性、获得属性。
dir([object]),返回参数的所有属性

divmod(a,b),返回一个元组(a//b,a%b)
enumerate,返回一个枚举对象,例子如下。

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
#out,[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

eval(expression, globals=None, locals=None),expression为字符串,其他两个参数可选填。作用是分析字符串内容,将其转换为表达式。
exec(object),作用是执行括号内语句,参数可以是代码字符串或直接是代码。
filter(function,iterable),等价于以下语句。返回迭代器中符合function函数的每一项

item for item in iterable if function(item)

float(x),将x转化为浮点型
format,解释有点复杂,直接看例子。

>>> li = ['hoho',18]
>>> 'my name is {} ,age {}'.format('hoho',18)
'my name is hoho ,age 18'
>>> 'my name is {1} ,age {0}'.format(10,'hoho')
'my name is hoho ,age 10'
>>> 'my name is {1} ,age {0} {1}'.format(10,'hoho')
'my name is hoho ,age 10 hoho'
>>> 'my name is {} ,age {}'.format(*li)
'my name is hoho ,age 18'

>>> hash = {'name':'hoho','age':18}
>>> 'my name is {name},age is {age}'.format(name='hoho',age=19)
'my name is hoho,age is 19'
>>> 'my name is {name},age is {age}'.format(**hash)
'my name is hoho,age is 18'

frozenset/set,frozenset,创建不可变集合;set,创建可变集合。

>>>a = frozenset(range(10))     # 生成一个新的不可变集合
>>> a
frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = frozenset('runoob') 
>>> b
frozenset(['b', 'r', 'u', 'o', 'n'])   # 创建不可变集合
>>>

globals/locals,globals(),返回一个字典,字典内容为当前全局符号表。包括in、out等;locals(),返回一个字典,字典内容为当前本地符号表
hasattr(object,name),检查name是否是object的属性。
hash(x),参数可以是数字、字符串、对象,但不能是字典、集合、列表。具体作用有待探究
id(),实质是内存中对象的地址,对于该对象是唯一的,当然非重叠寿命周期的两个对象可共用一个id.
isinstance/issubclass,字面意思很好理解,直接看应用例子。

>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list))    # 是元组中的一个返回 True
True

class A:
    pass
class B(A):
    pass
    
print(issubclass(B,A))    # 返回 True

iter,生成迭代器。
len(s),返回对象长度。
map(function,iterable),对iterable中的每一个元素做function变化后,以迭代器的形式将结果返回。实例如下。

>>>def square(x) :            # 计算平方数
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
 
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]

next(),返回迭代器中的下一个元素。

it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
    try:
        # 获得下一个值:
        x = next(it)
        print(x)
    except StopIteration:
        # 遇到StopIteration就退出循环
        break

#也可给迭代结束加标识符
it = iter([1, 2, 5, 4, 3])
while True:
    x = next(it, 'a')#当迭代结束后,下一项为a。
    print(x)
    if x == 'a':
        break

open(file,mode =‘r’,buffering = -1,encoding = None,errors = None,newline = None,closefd = True,opener = None )
reversed,返回反向迭代器。
slice(stop),slice(start,stop,step),切片

aa = [i for i in range(20)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

Aslice = slice(2,10,3)
aa[Aslice]
[2, 5, 8]

Bslice = slice(5)
aa[Bslice]
[0, 1, 2, 3, 4]

sort/sorted
默认为升序排列,设置reverse为Ture,结果为降序排列。

sort/sorted区别:

  • sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
  • list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

备注,简单的内置函数不做详述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值