# 断是否全部为真,布尔运算 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')]