Python - 数据容器list(列表)

简介: Python - 数据容器list(列表)

列表的定义

列表内的每一个数据,称之为元素

  • 以 [] 作为标识
  • 列表内每一个元素之间用, 逗号隔开

my_list=['csdn',"ssss",666,True,[1,2,3]]
print(my_list)
print(type(my_list))

注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套

列表的下标(索引)

正向索引:从前向后的方向,从0开始,依次递增

反向索引:从后向前:从-1开始,依次递减(-1、-2、-3......)

my_list=['csdn',"ssss",666,True,[1,2,3]]
print(my_list[0])
print(my_list[1])
print(my_list[2])
print(my_list[-1])
print(my_list[-2])
print(my_list[-3])
csdnssss666[1, 2, 3]True666

嵌套的列表同理

my_list2=[[1,2,3],[4,5,6],[7,8,9]]
print(my_list2[0][0])
print(my_list2[-1])
print(my_list2[-1][-1])

1

[7, 8, 9]

9

列表的常用操作

查找某元素的下标index

功能:查找指定元素在列表的下标,如果找不到,报错ValueError

语法:列表.index(元素)

index就是列表对象(变量)内置的方法(函数)

my_list=['csdn',"ssss",666,True,[1,2,3]]
tmp=my_list.index(666)
print(tmp)

2

修改特定位置(索引)的元素值

语法:列表[下标] = 值

可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)

my_list2=[[1,2,3],[4,5,6],[7,8,9],666]
my_list2[-1]=777
my_list2[2][1]=888print(my_list2)

[[1, 2, 3], [4, 5, 6], [7, 888, 9], 777]

插入元素insert

语法:列表.insert(下标, 元素),在指定的下标位置,插入指定的元素

my_list=['csdn',"ssss",666,True,[1,2,3]]
my_list.insert(1,789)
print(my_list)

['csdn', 789, 'ssss', 666, True, [1, 2, 3]]

追加元素append

语法:列表.append(元素),将指定元素,追加到列表的尾部

my_list=['csdn',"ssss",666,True,[1,2,3]]
my_list.append([6,6,6])
my_list.append(False)
print(my_list)

['csdn', 'ssss', 666, True, [1, 2, 3], [6, 6, 6], False]

追加元素方式extend

语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部

my_list=['csdn',"ssss",666,True,[1,2,3]]
my_list.extend([123,"sb",[6]])
print(my_list)

['csdn', 'ssss', 666, True, [1, 2, 3], 123, 'sb', [6]]

删除元素pop与del

语法1: del 列表[下标]

语法2:列表.pop(下标)


pop删除元素并返回删除的元素

my_list=['csdn',"ssss",666,True,[1,2,3]]
my_list.pop(0)
print(my_list)
tmp=my_list.pop(2)
print(my_list)
print(tmp)

['ssss', 666, True, [1, 2, 3]]

['ssss', 666, [1, 2, 3]]

True


del为指定删除,不返回删除元素

my_list=['csdn',"ssss",666,True,[1,2,3]]
del my_list[0]
print(my_list)
del my_list[-1]
print(my_list)

['ssss', 666, True, [1, 2, 3]]

['ssss', 666, True]


删除某元素在列表中的第一个匹配项remove

语法:列表.remove(元素)

删除从前往后第一个元素

my_list=['csdn',True,"ssss",True,666,True,[1,2,3]]
my_list.remove(True)
print(my_list)
my_list.remove([1,2,3])
print(my_list)

['csdn', 'ssss', True, 666, True, [1, 2, 3]]

['csdn', 'ssss', True, 666, True]


清空列表内容clear()

语法:列表.clear()

my_list=['csdn',"ssss",666,True,[1,2,3]]
my_list.clear()
print(my_list)

[]


统计某元素在列表内的数量count

语法:列表.count(元素)

my_list=['csdn',"ssss",666,True,[1,11,"111",'1'],1,1,1]
num1=my_list.count(1)
num2=my_list.count("csdn")
print(num1)
print(num2)

4

1


可见,count会查找容器里面所以同类型元素,包括嵌套容器里面的


统计列表内元素len

语法:len(列表)

my_list=['csdn',"ssss",666,True,[1,11,"111",'1']]
num=len(my_list)
print(num)
5

不包括嵌套容器里面元素

使用方法总结

image.png

列表特点

经过上述对列表的学习,可以总结出列表有如下特点:

  1. 可以容纳多个元素(上限为2**63-1、9223372036854775807个)
  2. 可以容纳不同类型的元素(混装)
  3. 数据是有序存储的(有下标序号)
  4. 允许重复数据存在
  5. 可以修改(增加或删除元素等)

列表的遍历

- while循环

my_list=['csdn',True,"ssss",True,666,True,[1,2,3]]
index=0while index<len(my_list):
    e=my_list[index]
    print(e)
    index+=1print(my_list)

csdn

True

ssss

True

666

True

[1, 2, 3]

['csdn', True, 'ssss', True, 666, True, [1, 2, 3]]


- for循环

my_list=['csdn',True,"ssss",True,666,True,[1,2,3]]
for i in my_list:
    print(i)
print(my_list)

csdn

True

ssss

True

666

True

[1, 2, 3]

['csdn', True, 'ssss', True, 666, True, [1, 2, 3]]


while循环和for循环,都是循环语句,但细节不同:

在循环控制上:


while循环可以自定循环条件,并自行控制


for循环不可以自定循环条件,只可以一个个从容器内取出数据

在无限循环上:


while循环可以通过条件控制做到无限循环


for循环理论上不可以,因为被遍历的容器容量不是无限的

在使用场景上:


while循环适用于任何想要循环的场景


for循环适用于,遍历数据容器的场景或简单的固定次数循环场景


相关文章
|
6天前
|
测试技术 开发者 Python
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
在 Python 中,创建列表有两种方法:使用方括号 `[]` 和调用 `list()` 函数。虽然两者都能创建空列表,但 `[]` 更简洁、高效。性能测试显示,`[]` 的创建速度比 `list()` 快约一倍。此外,`list()` 可以接受一个可迭代对象作为参数并将其转换为列表,而 `[]` 则需要逐一列举元素。综上,`[]` 适合创建空列表,`list()` 适合转换可迭代对象。
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
|
9天前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
27 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
2天前
|
数据处理 开发者 Python
Python中的列表推导式:一种优雅的代码简化技巧####
【10月更文挑战第15天】 本文将深入浅出地探讨Python中列表推导式的使用,这是一种强大且简洁的语法结构,用于从现有列表生成新列表。通过具体示例和对比传统循环方法,我们将揭示列表推导式如何提高代码的可读性和执行效率,同时保持语言的简洁性。无论你是Python初学者还是有经验的开发者,掌握这一技能都将使你的编程之旅更加顺畅。 ####
9 1
|
6天前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
25 2
|
7天前
|
JSON 安全 数据安全/隐私保护
深度剖析:Python如何运用OAuth与JWT,为数据加上双保险🔐
【10月更文挑战第10天】本文介绍了OAuth 2.0和JSON Web Tokens (JWT) 两种现代Web应用中最流行的认证机制。通过使用Flask-OAuthlib和PyJWT库,详细展示了如何在Python环境中实现这两种认证方式,从而提升系统的安全性和开发效率。OAuth 2.0适用于授权过程,JWT则简化了认证流程,确保每次请求的安全性。结合两者,可以构建出既安全又高效的认证体系。
25 1
|
6天前
|
存储 索引 Python
python数据结构之列表详解
列表是Python中极为灵活和强大的数据结构,适合于存储和操作有序数据集合。掌握其基本操作和高级特性对于编写高效、清晰的Python代码至关重要。通过本回答,希望能帮助你全面理解Python列表的使用方法,从而在实际编程中更加游刃有余。
10 0
|
4月前
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
781 1
|
3月前
|
Java API Apache
怎么在在 Java 中对List进行分区
本文介绍了如何将列表拆分为给定大小的子列表。尽管标准Java集合API未直接支持此功能,但Guava和Apache Commons Collections提供了相关API。
|
3月前
|
运维 关系型数据库 Java
PolarDB产品使用问题之使用List或Range分区表时,Java代码是否需要进行改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
3月前
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法