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循环适用于,遍历数据容器的场景或简单的固定次数循环场景


相关文章
|
1天前
|
开发工具 Python
Python列表和字典前面为什么要加星号( )?_python一个 代表列表
Python列表和字典前面为什么要加星号( )?_python一个 代表列表
|
1天前
|
数据采集 数据可视化 Python
Python分析香港26281套在售二手房数据
Python分析香港26281套在售二手房数据
|
2天前
|
数据采集 存储 数据挖掘
Python DataFrame初学者指南:轻松上手构建数据表格
【5月更文挑战第19天】本文是针对初学者的Pandas DataFrame指南,介绍如何安装Pandas、创建DataFrame(从字典或CSV文件)、查看数据(`head()`, `info()`, `describe()`)、选择与操作数据(列、行、缺失值处理、数据类型转换、排序、分组聚合)以及保存DataFrame到CSV文件。通过学习这些基础,你将能轻松开始数据科学之旅。
|
2天前
|
数据挖掘 数据处理 Python
【Python DataFrame 专栏】Python DataFrame 入门指南:从零开始构建数据表格
【5月更文挑战第19天】本文介绍了Python数据分析中的核心概念——DataFrame,通过导入`pandas`库创建并操作DataFrame。示例展示了如何构建数据字典并转换为DataFrame,以及进行数据选择、添加修改列、计算统计量、筛选和排序等操作。DataFrame适用于处理各种规模的表格数据,是数据分析的得力工具。掌握其基础和应用是数据分析之旅的重要起点。
【Python DataFrame 专栏】Python DataFrame 入门指南:从零开始构建数据表格
|
2天前
|
机器学习/深度学习 数据处理 Python
如何利用Python实现高效的数据清理与预处理
数据清理和预处理是数据科学家和分析师工作中不可或缺的一环,而Python作为一门强大的编程语言,可以使这个过程变得更加高效和便捷。本文将介绍一些常见的数据清理和预处理技术,并演示如何使用Python来实现这些技术。
|
3天前
|
数据采集 数据挖掘 Python
10个python小技巧,优雅地书写人生_python列表遍历奇数偶数
10个python小技巧,优雅地书写人生_python列表遍历奇数偶数
|
6天前
|
存储 安全 Java
java集合框架及其特点(List、Set、Queue、Map)
java集合框架及其特点(List、Set、Queue、Map)
|
6天前
|
存储 安全 算法
Java一分钟之-Java集合框架入门:List接口与ArrayList
【5月更文挑战第10天】本文介绍了Java集合框架中的`List`接口和`ArrayList`实现类。`List`是有序集合,支持元素重复并能按索引访问。核心方法包括添加、删除、获取和设置元素。`ArrayList`基于动态数组,提供高效随机访问和自动扩容,但非线程安全。文章讨论了三个常见问题:索引越界、遍历时修改集合和并发修改,并给出避免策略。通过示例代码展示了基本操作和安全遍历删除。理解并正确使用`List`和`ArrayList`能提升程序效率和稳定性。
12 0
|
6天前
|
存储 安全 Java
【JAVA基础篇教学】第八篇:Java中List详解说明
【JAVA基础篇教学】第八篇:Java中List详解说明
|
6天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap

热门文章

最新文章