Python ---Day3

一、列表和元组的操作

 1、学习列表的增删改查排序,反转等内容。

#学习列表的增删改查排序,反转等内容。
#name[1]  names.append .insert .remove name[1]="" .pop  .clear .extend .reverse .count
#1、列表增加:append  insert
names =["ZhangSan","LiSi","WangWu","ZhaoLiu","ZhuBa","QianQi"]
print("原始列表:",names)
names.append("SunJiu")     #append 最后增加  就是追加的意思
print("最后增加SunJiu:",names)
names.insert(1,"ZhouShi")   #insert 中间位置插入。 1是插入位置的下标  第一个位置下标是0
print("第二个位置增加ZhouShi:",names)
#2、列表删除里面的项---删LiSi,位于列表第三个位置
names.remove("LiSi")    #第一种删除方法
del names[2]            #第二种删除方法  = names.pop(2)
#names.pop()      #删除最后一个内容
names.pop(2)      #pop里面加上LiSi的下标 2,就与del names[2]一样了。第三种删除方法
print("删除Lisi:",names)
#3、修改列表中的内容----将第二个位置的ZhouShi改为WangEr.
names[1]="WangEr"
print("第二个位置ZhouShi改为WangEr:",names)

#4、提取列表中的内容即查看列表中的内容,切片过程中0(头)可以省略
print("提取列表中第一个位置的数据:",names[0])
print("提取列表中第二个位置的数据:",names[1])
print("提取列表中最后一个位置的数据:",names[-1])
#下面这个过程称为切片,顾头不顾尾,所以是2.不是1,另外0可以省略,
#下面内容=print("提取列表中前两个位置的数据:",names[:2])
print("提取列表中前两个位置的数据:",names[0:2])
#提取列表中最后三个位置的数据,下面过程称为切片,由于顾头不顾尾,所以-3:这个位置不能输入-1
#这里并不是-1省略的。
print("提取列表中最后三个位置的数据:",names[-3:])

#5、清空列表内容
#names.clear()
print("清空列表内容:",names)

#6、找出表中相同内容的数目。    count("需要计算数量的内容")
names.append("ZhangSan")
print(names)
print("列表中有几个ZhangSan:",names.count("ZhangSan"))

#7、找出列表中内容在列表什么位置,index显示位置如果有多个相同的人名只会显示第一个位置
print(names)
print("ZhuBa在列表中的位置:",names.index("ZhuBa"))

#8、列表中增加另一个列表中的内容。也就是拓展列表。
names2 = [1,2,3,4]
names.extend(names2)
print("names列表增加names2类表内容后显示结果:",names)
print(names2)

#9、列表内容反转。
print("列表反转前内容:",names)
names.reverse()
print("列表反转后内容:",names)

#10、列表排序,顺序,  数字,特殊符号,大写字母,小写字母顺便排序。
names3 =["ZhaoSan","@!ZhangYi","3LIsi","Chaoshi","2QianBa","zhouWu"]
print("names原始列表:",names3)
names3.sort()
print("names3列表排序:",names3)

显示结果:

 

2、列表复制与深度复制,循环依次显示列表内容,隔位显示列表内容。

  注:在切片过程中最后一个下标-1省略与不省略是有区别的。(切片顾头不顾尾)

names =["ZhaoSan","@!ZhangYi",["ZhaoYi","LaoWu"],"3LIsi","Chaoshi","2QianBa","zhouWu"]
name2=names.copy()
print("原始names列表数据:",names)
print("name2列表数据:",name2)
#修改names列表中的数据。修改"@!ZhangYi"为中文张仪,修改小列表中"ZhaoYi"为中文赵翼
names[1]= "张仪"
names[2][0] = "赵翼"
print("修改后names后names列表数据:",names)
print("修改后names后name2列表数据:",name2)
name2[3]= "李思"
name2[2][1]="老武"
print("修改后name2后names列表数据:",names)
print("修改后name2后name2列表数据:",name2)
#打印发现大列表中内容不变,但是小列表中的内容变了。这是因为copy是浅copy,只是复制大列表的内容,
#小列表中的内容会复制内存中的位置,所以name2中小列表中的内容也变了。

#为解决这个问题使用深COPY
import copy
names =["ZhaoSan","@!ZhangYi",["ZhaoYi","LaoWu"],"3LIsi","Chaoshi","2QianBa","zhouWu"]
name2 = copy.deepcopy(names)
names[1]= "张仪"
names[2][0] = "赵翼"
print("使用深COPY修改后names列表数据:",names)
print("使用深COPY修改后name2列表数据:",name2)


#依次打印数据
for i in (names):
    print(i)

#隔位提取内容。  切片
print("切片-不省略-1:",names[0:-1:2])    #0---第一个位置下标  -1---最后一个位置下标 2---中间隔1个数
print("切片-省略-1:",names[0::2])    #相当于=   print(names[::2])
print("切片-省略-1和0:",names[::2])
#从上面三行代码可以看出如果是切片过程中:-1省略与不省略有区别(切片顾头不顾尾)。0可以省略

 

posted on 2017-04-12 23:16  aptech2017  阅读(131)  评论(0)    收藏  举报

导航