初学者python笔记(内置函数_2)

这篇初学者笔记是接着上一篇初学者python笔记(内置函数_1)的。同样都是介绍Python中那些常用内置函数的。

max()和min()的高级用法

我们都知道,max():取最大值,min():取最小值,返回值就是那个最值。
其实,它还有一些更高级的用法和细节,他们主要用在字典的键值对上

  1. 比较键值对中的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

  1. 实现即比较了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’]

  1. 多个可迭代对象,默认从第一个元素开始比较
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’]

  1. 找到最大的年龄,并输出对应的全部信息
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(): 将对象中的元素从小到大排序

  1. 简单排序
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}]

  1. 对于不同的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()对象下的所有方法:
int下的所有方法
因为太多了,这里就只插张图吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章