Python小白学习之路—列表

这一篇主要说的是,列表的基本操作,在其中会调用Python中的很多内置方法。

什么是列表?什么是元组?

Python有6个序列的内置类型,但最常见的是列表和元组。

类表是Python中最基本的数据结构。列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

元组就是不可变的列表。

列表(list)

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。(列表的数据项不需要具有相同的类型)

Ex:

list = ["a","b","c",1,2,3]

list1 = ["a","b","c","d",]

list2 = [1,2,3,4,1,1]

列表的基本操作

现在有列表:names = ["Zhangsan","Lisi","WangMazi","SomeOne"],现在对列表做如下操作:

(1)列表的查找

 1 # 通过列表下标查找
 2 print("下标查找:",names[0])
 3 # 通过两个值来查找中间的内容(顾头不顾尾)
 4 print("范围查找:",names[1:3])
 5 # 下标前加数字则表示倒着数 (-1表示最后一个)
 6 print("第一个开始查找:",names[:3])
 7 print("取最后一个值:",names[-1])
 8 # 同样可以进行范围查找
 9 print("负数下标查找:",names[-2:-1])
10 # 如果此时-1省略不写,则表示查找到最后
11 print("倒数查找到最后:",names[-2:])
View Code

 结果:

D:\Python\python.exe D:/Pyproject/bogle.py
下标查找: Zhangsan
范围查找: ['Lisi', 'WangMazi']
第一个开始查找: ['Zhangsan', 'Lisi', 'WangMazi']
取最后一个值: SomeOne
负数下标查找: ['WangMazi']
倒数查找到最后: ['WangMazi', 'SomeOne']

Process finished with exit code 0

  通过下标来查找位置时,如果有两个参数,中间用冒号“:”分隔

(2)列表的修改

1 # 创建名字列表
2 names = ["Zhangsan","Lisi","WangMazi","SomeOne"]
3 # 通过下标来修改
4 print("未修改列表:",names)
5 names[1] = "XiaoMing"
6 print("修改后列表:",names)
View Code

结果:

D:\Python\python.exe D:/Pyproject/bogle.py
未修改列表: ['Zhangsan', 'Lisi', 'WangMazi', 'SomeOne']
修改后列表: ['Zhangsan', 'XiaoMing', 'WangMazi', 'SomeOne']

Process finished with exit code 0

  如果想要查找一个已经知道的名字的下标,然后再进行修改。查找位置方法:index = names.index("Zhangsan")  返回值为“Zhangsan”的下标:0

(3)列表的增加

 1 # 创建名字列表
 2 names = ["Zhangsan","Lisi","WangMazi","SomeOne"]
 3 # 打印列表
 4 print("初始数据:",names)
 5 # 调用append方法,将数据插入到列表最后
 6 names.append("Sunshine")
 7 print("Append后:",names)
 8 # 调用insert方法,数字代表插入到那个位置之前
 9 names.insert(1,"Others")
10 print("Insert后:",names)
View Code

结果:

D:\Python\python.exe D:/Pyproject/bogle.py
初始数据: ['Zhangsan', 'Lisi', 'WangMazi', 'SomeOne']
Append后: ['Zhangsan', 'Lisi', 'WangMazi', 'SomeOne', 'Sunshine']
Insert后: ['Zhangsan', 'Others', 'Lisi', 'WangMazi', 'SomeOne', 'Sunshine']

Process finished with exit code 0

  上面使用的方法为Python库中的内置方法,一般append方法使用的多一点

(4)列表的删除

 1 # 创建名字列表
 2 names = ["Zhangsan","Lisi","WangMazi","SomeOne"]
 3 # 打印列表
 4 print("初始数据:",names)
 5 # 调用remove删除,参数是列表里的值
 6 names.remove("Zhangsan")
 7 print("Remove后:",names)
 8 # 调用pop删除,参数是下标
 9 names.pop(0)
10 print("pop加参数:",names)
11 # pop不加参数时,表示删除最后一个
12 names.pop()
13 print("pop不加参数:",names)
View Code

结果:

D:\Python\python.exe D:/Pyproject/bogle.py
初始数据: ['Zhangsan', 'Lisi', 'WangMazi', 'SomeOne']
Remove后: ['Lisi', 'WangMazi', 'SomeOne']
pop加参数: ['WangMazi', 'SomeOne']
pop不加参数: ['WangMazi']

Process finished with exit code 0

(5)其它方法

 1 # 创建两个列表
 2 list_split = []
 3 names = ['Some One like you!','WangMazi',1,2,1,1,2,3]
 4 names1 = ['D','a','A','c','C']
 5 # 打印列表
 6 print("初始数据:",names)
 7 # 调用split,分片,按空格分片
 8 list_split = names[0].split(" ")
 9 print("Split分片方法:",list_split)
10 # 调用count,统计1的个数
11 print("count统计方法:",names.count(1))
12 # 调用rvserse,反转
13 names.reverse()
14 print("reverse反转:",names)
15 # 调用sort,按照ASCILL排序
16 names1.sort()
17 print("sort排序ASCILL顺序:",names1)
18 # 调用extend,将一个列表合并到另外一个列表
19 names.extend(names1)
20 print("extend合并后列表:",names)
View Code

结果:

D:\Python\python.exe D:/Pyproject/bogle.py
初始数据: ['Some One like you!', 'WangMazi', 1, 2, 1, 1, 2, 3]
Split分片方法: ['Some', 'One', 'like', 'you!']
count统计方法: 3
reverse反转: [3, 2, 1, 1, 2, 1, 'WangMazi', 'Some One like you!']
sort排序ASCILL顺序: ['A', 'C', 'D', 'a', 'c']
extend合并后列表: [3, 2, 1, 1, 2, 1, 'WangMazi', 'Some One like you!', 'A', 'C', 'D', 'a', 'c']

Process finished with exit code 0

 

列表都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法

 列表是可以进行层层嵌套的,要读取时也是根据下标读取。

names = ["Zhangsan","Lisi","WangMazi",["Tom","Jack"],"SomeOne"]

要读取Tom时:names[3][0]

嵌套列表时的浅层复制方法:copy

 

 1 names = ["Zhangsan","Lisi","WangMazi",["Tom","Jack"],"SomeOne"]
 2 names2 = names.copy()   #浅复制  列表里还有列表  其实是一个独立的指针
 3 print("原始列表names:",names)
 4 print("cpoy的列表names2",names2)
 5 # 修改原列表的第一层时不会变
 6 names[1]="李四"
 7 # 修改原来的列表的嵌套列表里的值时,使用copy方法的来的也会变
 8 names[3][0]="汤姆"
 9 print("修改后的列表names:",names)
10 print("names修改后,列表names2:",names2)
View Code

 

结果:

D:\Python\python.exe D:/Pyproject/day2/copy.py
原始列表names: ['Zhangsan', 'Lisi', 'WangMazi', ['Tom', 'Jack'], 'SomeOne']
cpoy的列表names2 ['Zhangsan', 'Lisi', 'WangMazi', ['Tom', 'Jack'], 'SomeOne']
修改后的列表names: ['Zhangsan', '李四', 'WangMazi', ['汤姆', 'Jack'], 'SomeOne']
names修改后,列表names2: ['Zhangsan', 'Lisi', 'WangMazi', ['汤姆', 'Jack'], 'SomeOne']

Process finished with exit code 0

 

 

3种浅复制方式

用处:创建联合账户

 1 # 3种浅复制方式
 2 names = ["Zhangsan","Lisi","WangMazi",["Tom","Jack"],"SomeOne"]
 3 print("原始数据:",names)
 4 # copy方法
 5 names2 = names.copy()
 6 print("cpoy方法:",names2)
 7 # 参数控制
 8 names2 = names[:]
 9 print("参数控制:",names2)
10 # 工厂函数
11 names2 = list(names)
12 print("工厂函数:",names2)
View Code

结果:

D:\Python\python.exe D:/Pyproject/day2/copy.py
原始数据: ['Zhangsan', 'Lisi', 'WangMazi', ['Tom', 'Jack'], 'SomeOne']
cpoy方法: ['Zhangsan', 'Lisi', 'WangMazi', ['Tom', 'Jack'], 'SomeOne']
参数控制: ['Zhangsan', 'Lisi', 'WangMazi', ['Tom', 'Jack'], 'SomeOne']
工厂函数: ['Zhangsan', 'Lisi', 'WangMazi', ['Tom', 'Jack'], 'SomeOne']

Process finished with exit code 0

如果想要完整的复制一份(深copy)
import copy
name2 = copy.deepcpoy(names)
print(names)
print(names2)

如何遍历列表?

可以使用循环的方式遍历列表

 

1 names = ['Zhang','Shun','Qian','Sunshine']
2 # 循环遍历列表
3 for i in names:
4     print(i)
5 print("**************************")
6 # 通过控制参数,来打印,最后一个字代表每个几个下标打印一次
7 print("参数控制:",names[0:-1:2])
8 # 从头到尾可以直接不写
9 print("默认参数:",names[::2])

 

D:\Python\python.exe D:/Pyproject/bogle.py
Zhang
Shun
Qian
Sunshine
**************************
参数控制: ['Zhang', 'Qian']
默认参数: ['Zhang', 'Qian']

Process finished with exit code 0

 

 

元组(tuple)

就是不可变的列表,定义时使用圆括号如下:

name=("One","Two","Three","Four") 

只有两个方法 count()、index()

 

 

转载于:https://www.cnblogs.com/SleedingBoy/p/7259049.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值