小白自学python_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)列表的查找

ContractedBlock.gif

ExpandedBlockStart.gif

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)列表的修改

ContractedBlock.gif

ExpandedBlockStart.gif

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)列表的增加

ContractedBlock.gif

ExpandedBlockStart.gif

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)列表的删除

ContractedBlock.gif

ExpandedBlockStart.gif

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)其它方法

ContractedBlock.gif

ExpandedBlockStart.gif

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

ContractedBlock.gif

ExpandedBlockStart.gif

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种浅复制方式

用处:创建联合账户

ContractedBlock.gif

ExpandedBlockStart.gif

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 innames: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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你作为一个纯小白自学Python时,以下是一些建议和步骤: 1. 学习编程基础知识:在开始学习Python之前,了解一些基本的编程概念和术语是很重要的。你可以学习一些基本的计算机科学概念,如变量、数据类型、条件语句、循环等。 2. 学习Python语法:Python是一种易于学习和理解的编程语言。你可以通过在线教程、视频教程或参考书籍来学习Python的语法规则和基本语句。掌握Python的基本语法是你进一步学习和开发的基础。 3. 练习编写代码:通过实践来巩固所学的知识是非常重要的。尝试编写一些简单的程序来解决问题,例如计算器、猜数字游戏等。这样可以帮助你熟悉Python的语法和逻辑。 4. 使用在线资源:互联网上有很多免费的资源可以帮助你学习Python。你可以参考一些优质的网站、博客、论坛和社区,如CSDN、Stack Overflow等。这些资源提供了大量的教程、示例代码和解答问题的平台。 5. 参与项目或实践:参与一些开源项目或实践项目可以帮助你更好地理解和应用Python。你可以加入一些开源社区,与其他开发者合作,共同开发项目。这样可以提高你的编程技能和经验。 6. 持续学习和提升:编程是一个不断学习和提升的过程。随着你的学习和实践,你会遇到更多的问题和挑战。不断学习新的知识,探索更深入的主题,参与更复杂的项目,可以帮助你不断提升自己的编程能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值