python学习之六(内置函数的使用)

# 断是否全部为真,布尔运算
print(all([1,2,'1']))
# 有一个为真返回真
print(any([0,1]))
# 把十进制转换为二进制
print(bin(3))
# 判断布尔值0,None的布尔值为false,其他都是true
print(bool(None))
# 把字符串转换为字节编码的形式,一个汉字占三个字节,编码可以在网络上进行传输
print(bytes('你好',encoding='utf-8'))
# 对编码后的字节进行解码,用什么方式编码就用什么方式解码
print(bytes('你好',encoding='utf-8').decode('utf-8'))
# 对应ascii码表进行装换
print(chr(97))
# 打印某一个对象下面都有哪些方法
print(dir(map))
# 打印10除以3,取出商和余数,用来做分页功能比较好
print(divmod(10,3))
# 定义一个字典,把字典转换为字符串类型
dic={'name':'cat'}
dic_str=str(dic)
print(dic_str)
# eval可以把字符串类型再转成字典类型
print(eval(dic_str))
# eval还可以把字符串中的数学计算运算出来
express='1+2*(3/3-1)-2'
print(eval(express))
# 可hash的数据类型是不可变的数据类型,不可hash的数据类型是可变的数据类型
print(hash('lucky'))
print(hash('lucky'))
# 不管要hash的字符串有多长,hash出来的数据都是一个定长数据,而且不能够根据hash后的结果反推出hash之前的字符串,hash可以用来做校验,用来检验代码有没有被改过
# 打印方法的解释
print(help(all))
# 10进制转16进制
print(hex(12))
# 10进制转8进制
print(oct(12))
# 判断某个对象是不是某种数据类型
print(isinstance(1,int))
# 打印所有全局变量
name='lucky'
print(globals())
# 打印所在的局部变量
print(locals())

拉链函数,左边和右边一一对应,代码如下:

print(list(zip(('a','b','c'),(1,2,3))))
输出的结果:

定义一个列表p,将p中的key和value进行一一的对应映射,zip函数里传两个参数,只要是序列类型的都可以进行映射,在python中序列类型主要有(列表,元组,字符串),代码如下:

p={'name':'lucky','age':18,'gender':'none'}
print(list(zip(p.keys(),p.values())))

输出结果:

简单的max和min方法:(比较大小关系)

# max和min方法
l=[1,3,7,9]
print(max(l))
print(min(l))

复杂的max和min方法:代码如下:

# 在字典之中如果写了values就把value取出来进行比较,如果没写,则自动比较key
age_dic={'dog1_age1':18,'dog2_age2':20,'dog3_age3':21,'dog4_age4':17}
print(max(age_dic.values()))
print(max(age_dic))

如果直接用max(age_dic)来进行比较,则比较的是age_dic字典中key的ascii码的大小,输出:dog4_dog4

如果用max(age_values())来进行比较,则比较的是age_dic字典中value的大小,输出:21

但是要想输出的结果中既有key又有value则我们可以使用zip函数,使用方法如下:

# 使用zip参与比较,更好的人机交互
print(list(max(zip(age_dic.values(),age_dic.keys()))))
输出结果:[21, 'dog3_age3']

下面更高级一些的max方法:取出年龄最大的人的信息,代码如下:

# 相当于一个for循环来取值比较
people=[
    {'name':'lucky','age':90},
    {'name':'dog','age':23},
    {'name':'cat','age':9},
    {'name':'cow','age':89}
]
print(max(people,key=lambda dic:dic['age']))

输出结果:{'name': 'lucky', 'age': 90}

内置函数的补充:

# 对字符串进行切片
l='hello'
print(l[3:5])
输出结果:lo
# 一般这样写,这样写的好处是代码更加规范化
s1=slice(3,5)
s2=slice(1,4,2) # 指定步长是2
print(l[s1])
print(l[s2]) 

排序:对people进行排序,代码如下:

people=[
    {'name':'lucky','age':90},
    {'name':'dog','age':23},
    {'name':'cat','age':9},
    {'name':'cow','age':89}
]
print(sorted(people,key=lambda dic:dic['age']))

输出的结果:[{'name': 'cat', 'age': 9}, {'name': 'dog', 'age': 23}, {'name': 'cow', 'age': 89}, {'name': 'lucky', 'age': 90}]

对字典name_dic进行排序:

name_dic={
    'dog':200,
    'cat':300,
    'cow':150
}
print(sorted(name_dic)) # 按照key的大小来进行比较而不是value
print(sorted(name_dic,key=lambda key:name_dic[key]))
print(sorted(zip(name_dic.values(),name_dic.keys()))) # 既要取出key又要取出value

输出的结果:

['cat', 'cow', 'dog']
['cow', 'dog', 'cat']
[(150, 'cow'), (200, 'dog'), (300, 'cat')]

 
 

猜你喜欢

转载自blog.csdn.net/LOLUN9/article/details/83187417