###########################zip函数#############################
zip(序列1,序列2)#拉链函数,将序列1,序列2中的元素一一对应成一个个元组。
test:
l1 = [1,2,3]
l2 = [3,2,1]#l1,l2不一定要同时为列表,只要是序列即可。(列表元组字符串)也可以是多层嵌套的。
test = zip(l1,l2)
print(list(test))
result:
[(1, 3), (2, 2), (3, 1)]
zip(p.keys(),p.values())#可以把字典中的key和value一一对应成一个个的小元组。
#需求:根据对values寻找max or min , 找到对应values的key
#用zip(p.values(),p.keys())来建立values于keys的一一对应关系。
#然后 res = zip(p.values(),p.keys())
print(list(max(res)))即可。
demo:
dic = {'vth':18,'nwl':17,'ygm':20}
res_zip = zip(dic.values(),dic.keys())
res_max = max(res_zip)
print(list(res_max))
result:
[20, 'ygm']
max和min是从第一个开始比,比到能比出大小时就停止。
###########################zip函数end#############################
####################max函数高级用法##########################
list=[{x:xx},{xx:x},{xx:xx},{xxx:xx}]
#对于这样的一个列表,根本没法比较,因为max是基于for进行比较的,而字典是无序的,所以字典跟字典之间根本没有办法比较。但是。。set就可以比较了。不知道为啥。
max的高级用法:
l = [
{'name':'vth','age':18},
{'name':'ygm','age':20},
{'name':'nwl','age':17}
]
res_max = max(l,key=lambda x:x['age'])#lambda在处理l序列,x是l序列的某个元素
print(res_max)
result:
{'name': 'ygm', 'age': 20}
####################max函数高级用法end##########################
################其他函数的用法###################
ord(字符)#与chr()功能相反。 返回字符的ascii码值。
pow(x,y)#用法同c语言
pow(x,y,z)#相当于pow(x,y)%z
round(float)#四舍五入
################其他函数的用法end###################
################slice()###################
slice(int,int,可选step)#模拟切片
l = 'hello'
s1 = slice(3,5)
print(l[s1])的效果与print(l[3:5])的效果是一样的。
################slice() end###################
##################sorted()#######################
sorted()
sorted() 函数对所有可迭代的对象进行排序操作。
sort 与 sorted 区别:sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
###############sorted的一般用法:
l = [1,3,5,4,2,6]
s = sorted(l)
print(s)
result:
[1, 2, 3, 4, 5, 6]
##############sorted的高级用法:
l = [
{'name':'vth','age':18},
{'name':'ygm','age':20},
{'name':'nwl','age':17}
]
res = sorted(l,key=lambda x:x['age'],reverse=True)#可以不写reverse, 不写时默认为False
print(res)
result:
[{'name': 'ygm', 'age': 20}, {'name': 'vth', 'age': 18}, {'name': 'nwl', 'age': 17}]
d = {
'vth':18,
'ygm':20,
'nwl':17
}
res_1 = zip(d.values(),d.keys())
print(sorted(res_1,reverse = True))
result:
[(20, 'ygm'), (18, 'vth'), (17, 'nwl')]
##################sorted() end#######################
####################剩余的内置函数的用法####################
str(obj)#将对象转换成字符串
sum(iterable)#求和
type(obj)#判断某对象的类型
type的高级用法
s = '123'
if type(s) is str:
k = int(s)+1
print(k)
result:
124
var()#没有参数时等同于locals()
var(obj)#查看某对象所有的方法,显示成字典的形式。
####################剩余的内置函数的用法end####################
#####################初见模块#############################
模块就是一个py文件。
import test 相当于 C中的 #include<xxx>
test.func()
k = __import__(module_name)#module_name is a str
k.func()
import的原理就是通过操作系统调用__import__()来解决。
#####################初见模块end#############################
############################文件操作#####################
流程:
打开文件,得到文件的句柄
通过句柄操作
关闭文件
示例:
f = open('addr',encoding='utf-8')#python的默认编码是utf-8 而open()函数默认以系统默认编码打开,即gbk,所以此处要用encoding明确指出文件的编码格式为utf-8
msg = f.read()#从当前文件指针处读到文件末尾。
print(msg)
f.close()
result:
不会R闪的瞎子
###### r w a
函数: f.readable()#返回True,则可读,返回False,则不可读。
f.readline()#从文件指针处读一行(包括\n) 读完之后,文件指针在下一行开头
f.readlines()#读取文件全部内容,以行为元素存储在列表中。
demo:
f = open('addr',encoding='utf-8')#等于只读
f = open('addr','r',encoding='utf-8')#只读
f = open('addr','w',encoding='utf-8')#只写
w模式的话,如果没有文件存在,就创建,如果有文件存在,就覆盖。
demo:
f = open('aaddr','w',encoding='utf-8')
f.write('fuckyou')#注意,写文件的时候他不会自动加换行符。需要自己加,而且,参数只能是字符串
f.close()
result:
aaddr----> fuckyou
f.writelines(list)#参数为一个字符串列表
f.writerable()#判断是否可写
####a 追加操作 不存在则创建,存在则追加
demo:
res = open('addr','a',encoding='utf-8')
res.write('caonimaaaaaaaaaa')
res.close()
result:
fuckyoucaonimaaaaaaaaaa
#如果带'+' 比如 'r+'等,则代表可同时读写。
origin file text:草泥马
afer code:你妈马
code:
f = open('addr','r+',encoding='utf-8')
f.write('你妈')#会从文件指针处向后写,如果已经有字符则覆盖之,文件指针随之移动
res = f.read()
print(res)
#############文件没有修改一说,只有覆盖。
文件修改的本质:打开一个文件,将文件中的东西加载进内存,然后在内存中该巴改巴,然后将内存中的整个文件覆盖掉原来的文件。
#文件复制程序 by vth
f_ori = open('2.jpg','rb')
f_new = open('aaaa.jpg','wb')
msg = f_ori.read()
f_new.write(msg)
f_ori.close()
f_new.close()
with#让操作系统自动关闭文件
用法:
with open('a.txt','w',encoding='utf-8') as f:
f.write('caonima')
with open('a.txt','r',encoding='utf-8') as f,\#\用来截断代码
open('aa.txt','w',encoding='utf-8') as f2:
rb wb ab等,以二进制方式处理。
注意,b模式操作的是字节类型,不能指定encoding
b模式对linux来说没有任何用处。因为linux处理文件默认就是二进制。
所以,用b模式处理有利于程序的跨平台。
############################文件操作end###################
day17
猜你喜欢
转载自blog.csdn.net/weixin_41687289/article/details/80034319
今日推荐
周排行