这篇初学者笔记是接着上一篇初学者python笔记(内置函数_1)的。同样都是介绍Python中那些常用内置函数的。
max()和min()的高级用法
我们都知道,max():取最大值,min():取最小值,返回值就是那个最值。
其实,它还有一些更高级的用法和细节,他们主要用在字典的键值对上
- 比较键值对中的value或key
{'age1':17,'age4':19,'age233333':30,'age3':35} #因为字典无序,所有随便排
print(max(age_dic.values())) #比较四个键值对中的值哪个最大
print(max(age_dic))
#比较键值对,就是比较key,因为是字符串,所以比较的是他们的ASCII码值大小,
#并且是一位字符一位字符的比较,当比较都第四位的时候,4大于2已经分出结果了,所以'age233333'
运行结果:
35
age4
- 实现即比较了value,又输出对应的key
age_dic = {'Big':12,'Small':25,'Ross':30,'Ruby':10} #比较值的大小后交换键值对位置
print(list(max(zip(age_dic.values(),age_dic.keys()))))
#用zip函数组合成一个个元组,再List变成列表,最终会输出年龄最大的那个人的数据
运行结果:
[30, ‘Ross’]
- 多个可迭代对象,默认从第一个元素开始比较
ok = [
(5,'d'),
(2,'g'),
(3,'k'),
(1,'p')
]
ok2 = ['a10','b15','c30']
print(list(max(ok)))
print(list(max(ok2)))
#ok2中的的多个可迭代对象就是多个字符串,所以比较的每个元素就是字符
运行结果:
[5, ‘d’]
[‘c’, ‘3’, ‘0’]
- 找到最大的年龄,并输出对应的全部信息
people = [
{'name':'alex', 'age':22},
{'name':'阿修罗', 'age':1000},
{'name':'鬼斩', 'age':657},
{'name':'二刚', 'age':89}
]
print(max(people,key=lambda dic:dic['age']))
#max的第一个参数是进行比较的那个容器,要比较的是'age'的value
#所以定义匿名函数比较'age'的值
运行结果:
{‘name’: ‘阿修罗’, ‘age’: 1000}
简单运算函数
ord(): 显示某个元素的ASCII码大小
pow(): 次方函数,第三个参数是取余运算,如:print(pow(3,3,2))
#就是输出3的3次方再对2取余的结果
round(): 四舍五入函数,将数四舍五入
set(): 将可迭代对象中的元素组成一个集合
reversed()与slice()函数
reversed(): 反转对象中的元素
slice(): 制作一个切片
s = [1,2,3,4]
print(list(reversed(s))) #反转后是一个迭代器,需要list以列表形式输出
print(s) #上面只是调用函数操作s传入的值,但不会改变s的原有数据
v = 'hello'
vv = slice(3,5) #位置是3<= <5的一个切片,切片是按索引来算的,可以从0开始取
print(v[vv]) #就相当于print(v[3:5])
v = 'hello'
v2 = slice(0,5,2) #设置切片的步长为2,从0到5,每2个取一个
print(v[v2])
运行结果:
[4, 3, 2, 1]
[1, 2, 3, 4]
lo
hlo
sorted()函数的特殊用法
sorted(): 将对象中的元素从小到大排序
- 简单排序
people = [
{'name':'alex', 'age':22},
{'name':'阿修罗', 'age':1000},
{'name':'鬼斩', 'age':657},
{'name':'二刚', 'age':89}
]
print(sorted(people,key=lambda dic:dic['age'])) #按年龄进行排序
运行结果:
[{‘name’: ‘alex’, ‘age’: 22}, {‘name’: ‘二刚’, ‘age’: 89}, {‘name’: ‘鬼斩’, ‘age’: 657}, {‘name’: ‘阿修罗’, ‘age’: 1000}]
- 对于不同的keys:
name = {
'路飞':19,
'乔巴':5,
'乌索普':25
}
print(sorted(name)) #只会比较key
print(sorted(name,key=lambda key:name[key])) #按照年龄比较,返回key
print(sorted(zip(name.values(),name.keys()))) #不止按年龄排序,还需要输出对应的名字
#遍历name字典的每个key下的值,因为会返回整个容器,所以不需要list列表化
运行结果:
[‘乌索普’, ‘乔巴’, ‘路飞’]
[‘乔巴’, ‘路飞’, ‘乌索普’]
[(5, ‘乔巴’), (19, ‘路飞’), (25, ‘乌索普’)]
type()、vars()、locals()函数
type(): 查看某元素的类型
locals(): 打印局部变量
vars(): 没有参数时和locals()一样;本质是查看某个对象下面所有的方法
def test():
msg = '没有你,我的生活将没有意义'
print(locals())
print(vars())
test()
运行结果:
{‘msg’: ‘没有你,我的生活将没有意义’}
{‘msg’: ‘没有你,我的生活将没有意义’}
不过,vars()函数的本质还是查看对象的方法:
print(vars(int))
这里的运行结果就是int()对象下的所有方法:
因为太多了,这里就只插张图吧