python之路09---之列表与元组的所有操作

一、列表说明

        列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

       li = [‘ouyang’,123,Ture,(1,2,3,’71net.com’),[1,2,3,’小明’,],{‘name’:’ouyang’}]

       列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

二、列表的操作

1、定义列表

list = ["71net.com","71box.net","71so.cn"]

下面对列表的操作都基于这个列表。

2、列表的查询操作

1、按下标查询

print(list[1])    #就将列表里下标为1的元素打印出来了,即71box.net

2、切片查询

print(list[0:2])        #顾头不透尾(和字符串一样),即查询出了下标为0和1的元素

3、循环查询(查询全部)

for i in list:
    print(i)

4、列表的步长查询

names = ["ZhangYang","GuYun","XiangPeng",["zain","xiajing"],"XuLiangChen","ChenRongHua"]
print(names[0:-1:2])               #打印names列表,从第一个打印到最后一个,步长是2
print(names[::2])                  #0表示从头开始可以省略,-1表示结尾也可以省略,2表示步长为2,简化后可以写为[::2]     

3、列表的增加操作

1、追加,将元素追加到列表末尾

list.append("71.ink")          #将71.ink追加到list列表的最后,
print(list) #结果为:['71net.com', '71box.net', '71so.cn', '71.ink']

2、插入,将元素写入到指定下标的前面

list.insert(2,"71.ink")          #指定在下标是二的元素前面插入,插入:写入到指定下标的前面
print(list)                          #结果为:['71net.com', '71box.net', '71.ink', '71so.cn']

3、迭代插入

说明:将插入的元素分解成最小元素写入到列表的最后面,数字不可迭代(会报错),可迭代的对象为:字符串和列表

1、插入字符串
list.extend("net")      
print(list)                   #结果为:['71net.com', '71box.net', '71so.cn', 'n', 'e', 't']

2、插入列表
list.extend(['71','net'])            
print(list)                     #结果为:['71net.com', '71box.net', '71so.cn', '71', 'net']

4、列表的删除操作

1、按索引删除

说明:(如果指定索引就删除指定索引的内容,如果不指定索引则默认删除最后一个),注意:使用pop删除会返回删除的内容

a = list.pop(1)                #指定删除列表里下标为1的元素
print(a,"-分割符-",list)      #结果为:71box.net -分割符- ['71net.com', '71so.cn']

2、按元素删除

说明:即指定列表里的元素删除列表里的内容

list.remove("71so.cn")
print(list)                     #结果为:['71net.com', '71box.net']

3、清空列表

list.clear()               #将列表清空
print(list)                #结果为:[]

4、切片删除列表里的元素

del list[1:]            #切片删除列表里的元素,[1:]:表示匹配下标1到列表结尾
print(list)              #结果为:['71net.com']
del list[0:2]            #[0:2]:顾头不顾尾,表示删除前两个元素
print(list) #结果为:['71so.cn']

5、将列表删除

del list
print(list)            #此时打印列表会报错

 5、列表的改操作

1、根据下标修改

list[0] ="www.71net.com"           #修改列表的第一个值
list[1] = [1,2,3]              #也可以改为列表

2、切片修改

说明:指定切片长度 想写多少个都可以(不是必须删除几个,就添加几个,可以删除一个,添加10个)

list[0:2] = "欧阳"          #切片修改,将列表的第一个值和第二个值替换为欧 阳,输出结果为:['欧', '阳', '71so.cn', '71.ink']
list[0:1] = ["zhangsan","lisi",1,2,3]         #添加列表,添加的内容为列表的最小元素,输出结果为:['zhangsan', 'lisi', 1, 2, 3, '71box.net', '71so.cn', '71.ink']

6、列表排序

说明:(按首字母的顺序):将列表的内容按首字母的顺序排序,优先级顺序:1.特殊符号,2.数字,3.大写,4.小写(按照ascll里的排序顺序来的),数字按从小到大排列

1、正序排序
li = [1,5,7,4,2,6,3]
li.sort()               #1、正序排序,打印结果为:[1, 2, 3, 4, 5, 6, 7]

2、倒序排序
li.sort(reverse=True)   #2、反序排序,打印结果为:[7, 6, 5, 4, 3, 2, 1]

3、列表反转
li.reverse()             #列表的反序显示,打印结果为:[3, 6, 2, 4, 7, 5, 1]
#print(li)

7、合并列表

names1 = ["zhangsan","lisi"]         #定义列表1
names2 = [1,2,3]                        #定义列表2
names1.extend(names2)      #将names2列表的内容合并到names1列表的结尾
print(names1,names2)       #打印两个列表,发现列表1中增加了列表2的内容同时列表2还在。
del names2                #删除列表2,两个列表都合并了,列表2就没有存在的意义了
print(names1,names2)      #此时在打印列表1和列表2就会报错,说没有列表2了

8、列表的浅copy

names = ["ZhangYang","GuYun","XiangPeng",["zain","xiajing"],"XuLiangChen","ChenRongHua"]      #定义names列表
names2 = names.copy()       #拷贝names列表并赋值于names2列表(浅copy,只copy一层,如果有多层列表就不copy了第二层列表了)
names[1] = "顾云"          #修改names列表下标为1的值
names[3][0] = "Zain"       #修改names列表的下标为3的字段的第一个字段
print(names)        #打印names列表,发现下标是1的值已经变了
print(names2)       #打印names2列表,发现内容还是之前的

9、列表copy之完全copy

import copy      #需要引用copy模块
names = ["ZhangYang","GuYun","XiangPeng",["zain","xiajing"],"XuLiangChen","ChenRongHua"]     #定义列表names
names2 = copy.deepcopy(names)       #copy.deepcopy()方法为深拷贝,完全复制的意思。将names复制一份赋值给names2
names[3][0] = "ZAIN"              #将列表names下标为1的字段下的第一个字段改为ZAIN,
print(names)
print(names2)                      #打印names列表和names2列表,发现只是names列表的值修改了,names2的值还是之前的

10、列表的公共用法

print(len(list))         #统计列表长度
print(list.count("71net.com"))       #统计列表里元素出现的次数
print(list.index("71net.com"))        #通过元素找下标,如果是没有的元素会报错

 三、元组

1、说明

         元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。例:(1,2,3)("a","b","c")

2、元组的操作

1、定义元组

tu = (1,2,3,'ouyang',[2,3,4,'qiyi'],'71net')             #元组里面嵌套的列表里的内容可以修改,其他的不可以修改

2、往qiyi后面追加内容www

tu[4].append("www")

3、元组的切片查询

print(tu[0:3])

4、循环打印元组

for i in tu:
    print(i)
posted @ 2018-07-19 19:42  欧-阳  阅读(278)  评论(0)    收藏  举报