ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python初学者指南:列表

2021-06-12 19:32:56  阅读:266  来源: 互联网

标签:name python Rose list 列表 初学者 print Lily


列表

1 初识列表

1.1 列表格式

[数据1, 数据2, 数据3, 数据4......]

列表可以一次性存储多个数据,且可以为不同数据类型。

1.2 列表的优点使用场景

优点1:异构性

列表里想装啥就装啥,即:他可以包含不同种类、任意类型的对象,甚至可以嵌套列表,专业点的词儿叫:异构性;

我们看一个例子:

L1 = [1, 2, 3, 4, 5]
L2 = [1, 'spam', [2.3, 4]]
L3 = []

看这三个列表的初始化过程,异构性就搞清楚了,特别是L2列表,它同时包含了好几种不同的数据类型,甚至还嵌套了列表。

优点2:有序性

列表里装的元素都是有顺序的,可以按照位置序号获取单个元素,也可以用分片的方法来进行多个连续元素的获取,来个专业词汇,叫做:有序性。

按位置序号索引,例如L1[2]这种方式来访问列表中的元素只是最简单的一种,我来重点来说说分片操作这个独特用法,先看看这个例子:

L = [1,2,3,4,5,6,7,8]
print(L[1:3])

[2, 3]

我们从列表L中从左往右截取了一个片段。关于截取片段左右边界与索引值的对应关系,我们只需记住这么一个口诀“左闭右开”就OK了:

分片索引中第一个参数1表示左侧开始的索引1(从0开始计数),因此起始的元素就是整形数2,第二个参数3表示在右侧终止的索引值为3,即整形数4,但要记住他是不包含在截取的序列中的。

**优点3:**本地可修改

列表的大小和内容可以随意改变,在插入、删除、修改列表元素时,不需要建立一份新的列表拷贝,而是在原来的内存地址上直接修改列表对象。这个叫“本地可修改”

首先看增加新元素的三个使用场景:

L = [1,2,3,4]
L.append(5)
print(L)

[1, 2, 3, 4, 5]

L = [1,2,3,4]
L.insert(1,10)
print(L)

[1, 10, 2, 3, 4]

L = [1,2,3,4]
L.extend([11,22,33])
print(L)

[1, 2, 3, 4, 11, 22, 33]

这三个用法有些不同,append方法只能在尾部加入;insert方法可在任意位置加入,比如上面例子,我们在列表的索引位置为1的地方加入元素10,如果指定的索引值大于序列的总长度,则自动加到末尾;extend方法则可以在尾部一次性加入多个元素

2 列表的常用操作

2.1 增加

增加指定数据到列表中。

1 append():

列表结尾追加数据,语法如下

列表序列.append(数据)

示例

name_list = ['Tom', 'Lily', 'Rose']

name_list.append('xiaoming')

# 结果:['Tom', 'Lily', 'Rose', 'xiaoming']
print(name_list)

列表追加数据的时候,直接在原列表里面追加了指定数据,即修改了原列表,故列表为可变类型数据。

如果append()追加的数据是一个序列,则追加整个序列到列表,注意和下面extend区分!

name_list = ['Tom', 'Lily', 'Rose']

name_list.append(['xiaoming', 'xiaohong'])

# 结果:['Tom', 'Lily', 'Rose', ['xiaoming', 'xiaohong']]
print(name_list)
2 extend():

列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表。语法如下:

列表序列.extend(数据)

单个数据

name_list = ['Tom', 'Lily', 'Rose']

name_list.extend('xiaoming')

# 结果:['Tom', 'Lily', 'Rose', 'x', 'i', 'a', 'o', 'm', 'i', 'n', 'g']
print(name_list)

序列数据

name_list = ['Tom', 'Lily', 'Rose']

name_list.extend(['xiaoming', 'xiaohong'])

# 结果:['Tom', 'Lily', 'Rose', 'xiaoming', 'xiaohong']
print(name_list)
3 insert()

指定位置新增数据。语法如下

列表序列.insert(位置下标, 数据)

快速体验

name_list = ['Tom', 'Lily', 'Rose']

name_list.insert(1, 'xiaoming')

# 结果:['Tom', 'xiaoming', 'Lily', 'Rose']
print(name_list)

2.2 删除

1 del
del 目标

删除列表

name_list = ['Tom', 'Lily', 'Rose']

# 结果:报错提示:name 'name_list' is not defined
del name_list
print(name_list)

删除指定数据

name_list = ['Tom', 'Lily', 'Rose']

del name_list[0]

# 结果:['Lily', 'Rose']
print(name_list)
2 pop()
删除指定下标的数据(默认为最后一个),并返回该数据。

语法

列表序列.pop(下标)

快速体验

name_list = ['Tom', 'Lily', 'Rose']

del_name = name_list.pop(1)

# 结果:Lily
print(del_name)

# 结果:['Tom', 'Rose']
print(name_list)
3 remove()

移除列表中某个数据的第一个匹配项。

语法

列表序列.remove(数据)

快速体验

name_list = ['Tom', 'Lily', 'Rose']

name_list.remove('Rose')

# 结果:['Tom', 'Lily']
print(name_list)
4 clear()

清空列表

name_list = ['Tom', 'Lily', 'Rose']

name_list.clear()
print(name_list) # 结果: []

2.3 修改

1 修改指定下标数据
name_list = ['Tom', 'Lily', 'Rose']

name_list[0] = 'aaa'

# 结果:['aaa', 'Lily', 'Rose']
print(name_list)
2 逆置:reverse()
num_list = [1, 5, 2, 3, 6, 8]

num_list.reverse()

# 结果:[8, 6, 3, 2, 5, 1]
print(num_list)
3 排序:sort()

语法

列表序列.sort( key=None, reverse=False)

注意:reverse表示排序规则,reverse = True 降序, reverse = False 升序(默认)

快速体验

num_list = [1, 5, 2, 3, 6, 8]

num_list.sort()

# 结果:[1, 2, 3, 5, 6, 8]
print(num_list)

2.4 查找

1 下标
name_list = ['Tom', 'Lily', 'Rose']
print(name_list[0])  # Tom
print(name_list[1])  # Lily
print(name_list[2])  # Rose
2 函数

index():返回指定数据所在位置的下标 。

语法

列表序列.index(数据, 开始位置下标, 结束位置下标)

快速体验

name_list = ['Tom', 'Lily', 'Rose']

print(name_list.index('Lily', 0, 2))  # 1

注意:如果查找的数据不存在则报错。

count():统计指定数据在当前列表中出现的次数。

name_list = ['Tom', 'Lily', 'Rose']

print(name_list.count('Lily'))  # 1

len():访问列表长度,即列表中数据的个数。

name_list = ['Tom', 'Lily', 'Rose']

print(len(name_list))  # 3

2.5 复制

函数:copy()

name_list = ['Tom', 'Lily', 'Rose']
name_li2 = name_list.copy()
# 结果:['Tom', 'Lily', 'Rose']
print(name_li2)

以上便是本篇文章全部内容,如果看到这里对您有些许帮助,希望可以得到您的三连支持!

相关链接:

Python中列表和字典有什么区别,分别适用于什么场景?

标签:name,python,Rose,list,列表,初学者,print,Lily
来源: https://blog.csdn.net/baidu_39621090/article/details/117854569

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有