Python列表基础:定义、创建与核心操作详解
本文详细介绍Python中列表(List)这一基本且重要的可变数据结构。内容涵盖列表的定义、索引机制、多种创建方式(包括空列表初始化),以及支持的数据类型。重点解析列表的核心操作:增加、删除、修改和查询元素,包括基于索引、切片及特定方法(如append, pop, remove)的使用,并强调嵌套列表与数据类型的注意事项。
Python列表(List)概述
在Python中,列表是最基础的数据结构之一。列表中的每个元素都对应一个数字索引,用于标识其位置。索引从0开始,即第一个元素的索引为0,第二个为1,依此类推。
可以将列表视为一个容器,能够容纳各种类型的数据。当数据量增加并形成结构时,列表便成为组织这些数据集合的一种有效形式。
列表是一种有序且可变的数据类型,这意味着其内容可以在创建后进行调整。
如何声明一个列表
方法一:使用内置函数创建空列表 list_data = list()
方法二:使用方括号创建空列表 list_data = [ ]
在列表中,各个元素之间使用逗号(,)进行分隔,整个列表被包裹在方括号 [ ] 中。
列表的语法规则示例:[“中国”, ‘SHENZHEN', 44, True, 1.0]。注意元素类型可以混合,且字符串需加引号。
列表支持嵌套其他类型的数据,例如:[{“name”:“like”,“age”:4}, (1,2),[1,3,4]]。
特别注意以下几点:
1、列表内的每个元素必须遵守其原有数据类型的规则。例如,字符串类型的数据必须用引号("" 或 '')包裹。
2、列表支持多层嵌套,每一层嵌套结构作为一个独立的数据体存在。
列表支持的数据类型
字符串(Str):name = “like”
整数(Int):age = 18
浮点数(Float):height = 1.74
布尔值(Bool):is_yes = True
列表(List):pets = [“牛”,“虎”,“兔”]
元组(Tuple):work_cities = (“北京”,“上海”,“广州”)
字典(Dict):teacher = {“姓名”:“张三”}
列表的基本特性与操作
增加:支持通过空列表创建,也支持对现有列表进行数据更新(添加新元素)。
删除:支持删除整个列表、删除特定元素,以及使用切片方式删除部分元素。
修改:支持基于下标、索引或index值对列表数据进行修改。
查询:支持基于下标、索引或index值查询数据,支持切片查询,以及统计第一级元素的长度(使用len函数)。
personal_info= ['张三',"男"]
#列表基本操作
#增加数据
personal_info.append(18)
最后一位追加>>>['张三',"男",18]
personal_info.insert(1,1.80)
基于索引位置插入数据>>>['张三',1.80,"男",18]
#修改数据
personal_info[1] = 1.90
基于索引位置修改数据>>>['张三',1.90,"男",18]
personal_info[2:4] = ["女",19]
基于索引范围修改数据>>>['张三',1.90,"女",19]
#查询数据
personal_info[1]
基于索引位置修改数据>>> 1.90
personal_info[2:4]
基于索引范围修改数据>>>["女",19]
#删除数据
personal_info.pop(1)
基于索引删除数据>>>['张三',"女",19]
personal_info.remove(19)
基于值删除数据>>>['张三',"女"]
del personal_info[0:2]
基于索引位置删除>>>[]
personal_info.clear()
清空全部列表元素>>>[]
del personal_info
删除整个列表>>>[]
*特别注意
1、修改数据和查询数据”一线间“
2、圈定范围修改列表数据时,需要保证添加的数据为可迭代对象
3、注意pop()默认为删除最后一位,可指定索引位置,并返回被删除的值
4、remove()基于值/数据删除数据,删除的是第一个匹配的数据,并非所有
#列表合并
num_1 =[1,2,3]
num_2 =[5,6,7,8]
num_sum =num_1 + num_2
>>>[1,2,3,5,6,7,8]
num_1.extend(num_2)
特别注意 extend()会改变当前变量内的值>>>[1,2,3,5,6,7,8]
#列表排序
num_sum =num_2 + num_1
>>>[5,6,7,8,1,2,3,]
num_sum.sort()
正序>>>[1,2,3,5,6,7,8]
num_sum.sort(reverse = True)
倒序>>>[8,7,6,5,3,2,1]
sort()会直接改变当前变量内的值
#列表反转
msg = ['好',"好","学","习"]
msg.reverse()
>>>["习","学","好","好"]
#元素数据统计
msg.count("好")
>>>2
#自身复制
msg = msg * 2
msg>>>['好',"好","学","习",'好',"好","学","习"]
#列表的长度
len(msg)
>>>8
#列表的复制
num = [[1,2,3],[6,7]]
id(num)
>>> 4567867877
id(num[0])
>>> 4598080890 (同)
#浅复制
num_X = num.copy()
id(num_X)
>>> 4567867800
id(num_X[0])
>>> 4598080890 (同)
#深复制
import copy
num_Y = copy.deepcopy(num)
id(num_Y)
>>> 4567867800
id(num_Y[0])
>>> 4598080999 (不同)
#包含关系判断
msg = ["好","好",'学','习']
"习" in msg
>>>True
仅支持当前层级判断
#切片延申
num = [0,1,2,3,4,5,6,7,8,9]
num[0:10:2] [起,止,步长]
>>>[0,2,4,6,8]
类似于for循环中的range()函数
num[::2]
>>>[0,2,4,6,8]
特别注意 起止不设定默认,为从头到尾的范围
#list在程序中的书写
#单列表
list = ["哈士奇","萨摩","柴犬","泰迪"]
列表这个数据类型的性质决定了它通常内部存在数据比较长,书写的时候会超出屏幕边界,所以可以换行:
list = ["哈士奇",
"萨摩",
"柴犬",
"泰迪"
]
注意对齐,好看清晰明了
#嵌套列表
list = [
['拍黄瓜','大拌菜','小葱拌豆腐'],
['白酒','啤酒','红酒'],
['橘子','香蕉','苹果'],
]
一组数据里有高度、有宽度可以叫做:
1、矩阵
2、二维数组
#列表与for循环
#初级难度
dogs = ["哈士奇",
"萨摩",
"柴犬"
]
for dog in dogs:
print(dog)
第一次:哈士奇
第二次:萨摩
第三次:柴犬
#中级难度
menus = [
['拍黄瓜','大拌菜','小葱拌豆腐'],
['白酒','啤酒','红酒'],
['橘子','香蕉','苹果'],
]
for menu in menus:
print(menu)
第一次:['拍黄瓜','大拌菜','小葱拌豆腐']
第二次:['白酒','啤酒','红酒']
第三次:['橘子','香蕉','苹果']
#高级难度
menus = [
['拍黄瓜','大拌菜','小葱拌豆腐'],
['白酒','啤酒','红酒'],
['橘子','香蕉','苹果'],
]
for menu in menus:
print(menu)
for food in menu:
print(food)
第一次:['拍黄瓜','大拌菜','小葱拌豆腐']
内循环第一次:'拍黄瓜'
内循环第二次:'大拌菜'
内循环第三次:'小葱拌豆腐'
第二次:['白酒','啤酒','红酒']
内循环第一次:'白酒'
内循环第二次:'啤酒'
内循环第三次:'红酒'
第三次:['橘子','香蕉','苹果']
内循环第一次:'橘子'
内循环第二次:'香蕉'
内循环第三次:'苹果'
总结
本文介绍了Python列表的基础知识,希望能为读者提供帮助。欢迎继续关注本站获取更多技术内容!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













