Python学习笔记(6)~Python基础练习之常用内置函数(21-30)
转载
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返回的是一个对象,不支持直接打印
运行结果
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'))
运行结果
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
运行结果
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)
运行结果
25、float()
作用
将一个整数或数值型字符串转换为浮点数
测试demo
#!/usr/bin/python3
# 3.0
print(float(3))
运行结果
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)
运行结果
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))
运行结果
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)))
运行结果
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)
运行结果