Python基础练习之常用内置函数(21-30)

21、enumerate()

作用
        用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

语法

enumerate(sequence, [start=0])

参数
sequence -- 一个序列、迭代器或其他支持迭代对象
start -- 下标起始位置

返回值
返回 enumerate(枚举) 对象

测试demo

#!/usr/bin/python3

seasons = ['Spring', 'Summer', 'Fall', 'Winter']

#默认初始下标为0 [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
print(list(enumerate(seasons)))

#自定义下标 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
print(list(enumerate(seasons, start=1)) )

#注:使用list打印结果, python3中enumerate返回的是一个对象,不支持直接打印

运行结果

Python学习笔记(6)~Python基础练习之常用内置函数(21-30)_迭代

22、eval()

作用
        用来执行一个字符串表达式,并返回表达式的值

测试demo

#!/usr/bin/python3

x=7
print(eval('3*x'))# 3*7=21

#2的三次方=8
print(eval('pow(2,3)'))

# 3+3=6
print(eval('3+3'))

运行结果

Python学习笔记(6)~Python基础练习之常用内置函数(21-30)_python_02

23、getsizeof()

作用
        查看变量所占字节数

测试demo

#!/usr/bin/python3
import sys

a = 2
print(sys.getsizeof(a)) # 28

b = 0
print(sys.getsizeof(b)) # 24

c = 'x'
print(sys.getsizeof(c)) # 50

d = ''
print(sys.getsizeof(d)) # 49

x = {'a': 1, 'b': 2.0}
print(sys.getsizeof(x)) # 240

运行结果

Python学习笔记(6)~Python基础练习之常用内置函数(21-30)_迭代_03

24、filter()

作用
        用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。

语法

filter(function, iterable)

参数
function -- 判断函数
iterable -- 可迭代对象

返回值
返回一个迭代器对象

测试demo

#!/usr/bin/python3
import math

# 过滤出列表中的所有奇数
def is_odd(n):
return n % 2 == 1


tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)

# 过滤出1~100中平方根是整数的数
def is_sqr(x):
return math.sqrt(x) % 1 == 0


tmplist = filter(is_sqr, range(1, 101))
newlist = list(tmplist)
print(newlist)

运行结果

Python学习笔记(6)~Python基础练习之常用内置函数(21-30)_测试demo_04

25、float()

作用
        将一个整数或数值型字符串转换为浮点数

测试demo

#!/usr/bin/python3

# 3.0
print(float(3))

运行结果

Python学习笔记(6)~Python基础练习之常用内置函数(21-30)_python_05

26、format()
​​​传送门😄​​27、frozenset()

作用
        返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
语法

class frozenset([iterable])

参数
iterable -- 可迭代的对象,比如列表、字典、元组等等。

返回值
返回新的 frozenset 对象,如果不提供任何参数,默认会生成空集合。

测试demo

#!/usr/bin/python3

a=frozenset(range(0,10))
print(a)

b=frozenset('haihong')
print(b)

运行结果

Python学习笔记(6)~Python基础练习之常用内置函数(21-30)_python_06

28、getattr()

作用
        用于返回一个对象属性值
语法

getattr(object, name[, default])

参数
object -- 对象。
name -- 字符串,对象属性。
default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

返回值
返回对象属性值。

测试demo

#!/usr/bin/python3

class A:
bar=1

a=A()
# 获取属性bar的值
print(getattr(a,'bar'))

# barx不存在 报错
#print(getattr(a,'barx'))

# 属性 barx 不存在,但设置了默认值3 打印结果:3
print(getattr(a,'barx',3))

运行结果

Python学习笔记(6)~Python基础练习之常用内置函数(21-30)_迭代_07

29、hash()

作用
        用于获取取一个对象(字符串或者数值等)的哈希值
语法

hash(object)

参数说明:
object -- 对象;

返回值
返回对象的哈希值。

测试demo

#!/usr/bin/python3

# 字符串 -7760019414607847097
print(hash('haihong'))

# 数字 1
print(hash(1))

# 列表 报错 TypeError: unhashable type: 'list'
#print(hash([1,2,3]))

# 元组 2528502973977326415
print(hash((1,2,3)))

# [1, 2, 3]
print(str([1,2,3]))

# (1, 2, 3)
print(str((1,2,3)))

运行结果

Python学习笔记(6)~Python基础练习之常用内置函数(21-30)_python_08

30、sorted()
作用
        对所有可迭代的对象进行排序操作
sort 与 sorted 区别

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

语法

sorted(iterable, cmp=None, key=None, reverse=False)

参数说明:
iterable -- 可迭代对象。
cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

返回值
返回重新排序的列表。

测试demo

#!/usr/bin/python3
import operator
a = [5,7,6,3,4,1,2]
b = sorted(a)

# 原列表 并未改变
print(a)
# 打印新列表
print(b)


students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
# 按年龄排序
s1=sorted(students, key=lambda s: s[2])
print(s1)
# 按年龄 降序
s2=sorted(students, key=lambda s: s[2], reverse=True)
print(s2)

运行结果

Python学习笔记(6)~Python基础练习之常用内置函数(21-30)_迭代_09