python(四)切片,内置函数,集合,json操作

1. 切片

切片是只取列表或字符串中一部分或全部。

定义一个list:l=['Monica','Josie','Shirley','Leo','Tina']

s=[:]   取的是整个列表元素

s=[0:2]  取得是下标为零和1的元素(不管是从前数还是从后数,切片的特点包头不包尾)

s=[:2]  取得是小标为0和1的元素,当冒号前面不写下标时,默认从第一个元素开始

s=[2:]  取得是下标为2一直到这个列表的最后一个

s=[-3:-1] 写负数是从列表的最后开始数,要把小的写在前面

s=[::2]  最后的数字就是步长,是指从第一个取,每个一个再取

切片也同样适用于字符串

2.  深拷贝和浅拷贝

l=['Monica','Josie','Shirley','Leo','Tina']

s=l  这是浅拷贝  s和l值得是内存中的同一块地址

s=l[:]  这是深拷贝,s和l的内容是一致的,但是在内存中的地址不一样

import copy    这也是深拷贝

t=copy.deepcopy(l)

PS  查看s的存在内存中的地址 id(s)

3. 非空即真,非0即真

只要不是空就是真,只要是0就是真

s=‘’ 空字符串;l=[] 空列表;d={}空字典;None

if s:

   print(“走if”)

else:

   print(“走else”)s为空字符串,所以会走else

4. 列表生成式:可以简化代码

result=[str(i).zfill(2) for i in range(1,20) if i <8]

第一步:先执行 for i in range(1,20)

第二步:执行 if i < 8

第三步:执行str(i).zfill(2)

5. 三元表达式

 id_card='410881199211111141'

sex='女'   if int(id_card[-2])%2==0  '男'

第一步:先执行  if int(id_card[-2])%2==0

第二步:如果第一步的结果为真  就执行sex='女'

第三步:如果第一步的结果为假 就执行sex='男'

6. 集合

集合的特点:无序,不重复

定义集合:s=set()

l=[1,1,2,2,3,3]

s=set(l)   把列表变成没有重复的集合

集合的方法有 add,remove

s.add()#添加元素

s.remove()删除元素

交集、并集、差集、对称差集

.intersection(集合)或 集合&集合

集合.union(集合)或 集合 | 集合

集合.different(集合)或  集合-集合

集合.symmetric(集合)或  集合 ^集合

7. json的操作

使用json需要导入import json

dump的作用是把字典转换成字符串;loads的作用是把字符串转换成字典。

定义一个字典,然后把这个字典写进文件,写进文件的只能是字符,json是字符。那就把字典变成json字符串,然后写进文件中。

第一种方法:

第一步:定义一个字典d={“A”:“B”}

第二步:打开文件,f=open('a.txt','a+',encoding='utf-8')

第三步:把字典转换成json字符串:s=json.dumps(d,ensure_ascii=False,indent=8)

第四步:把字符串写进去:f.write(s)

第五步:关闭文件 f.close()

第二种方法(只是读写文件):

第一步:定义一个字典  d={“A”:“B”}

第二步:打开文件 f=open('a.txt','a+',encoding='utf-8')

第三步:json.dump(d,f,ensure_ascii=False,indent=4)

第四步:f.close()

把json字符串读出来变成字典

第一种方法:

第一步:打开文件,f=open('a.txt',encoding='utf-8')

第二步:读文件内容:result=f.read()

第三步:把读的json字符串变成字典 dic=json.loads(result)

第四步:把独到的东西打印出来 print(dic)

第五步:关闭文件f.close()

第二种方法(只是读写文件):

第一步:定义一个字典:d={"A":“B”}

第二步:读文件内容:f=open(“a.txt”,encoding='utf-8')

第三步:result=json.load(f)

第四步:print(result)

第五步:f.close()

猜你喜欢

转载自www.cnblogs.com/dmjsd/p/11001091.html
今日推荐