【Python】6_列表与方法

简介: ​二、列表1、定义# 列表: 是Python中的一种数据类型,可以存放多个数据,列表中的数据可以是任意类型的# 列表list ,定义使用[] 进行定义# 定义空列表my_list = []my_list1 = list()print(my_list ,type(my_list)) # [] <class 'list'>print(my_list1 ,type(my_list1)) # [] <class 'list'># 定义带数据的列表数据元素之间使用逗号隔开my_list2 = [1, 3.24, True, "IT"] # 在计算中布尔表达式的true代表


二、列表
1、定义

列表: 是Python中的一种数据类型,可以存放多个数据,列表中的数据可以是任意类型的

列表list ,定义使用[] 进行定义

定义空列表

my_list = []
my_list1 = list()
print(my_list ,type(my_list)) # []
print(my_list1 ,type(my_list1)) # []

定义带数据的列表数据元素之间使用逗号隔开

my_list2 = [1, 3.24, True, "IT"] # 在计算中布尔表达式的true代表1,false代表0
print(my_list2 ,type(my_list2)) # [1, 3.24, True, 'IT']

求列表中数据元素的个数,即列表的长度

num = len(my_list2)
print(num) # 4

列表支持下标和切片操作

print(my_list2[-1]) # IT
print(my_list2[1]) # 3.24

print(my_list2[1:3]) # [3.24, True]

下标操作和字符串操作中不同的是:字符串不能使用下标修改啊其中的数据,但是列表可以使用下标修改列表中的数据

字符串是一个整体,不能修改,但列表是分散的,所以支持索引修改

my_list2[0] = 18
print(my_list2) # [18, 3.24, True, 'IT']

my_list2[-1] = "hello"
print(my_list2) # [18, 3.24, True, 'hello']

my_list2[0] = "python"
print(my_list2) # ['python', 3.24, True, 'hello']

2、遍历
支持for循环和while循环

my_list = ["郭德纲","于谦",'孙越','名之以父']

for i in my_list :

print(i)
'''
郭德纲
于谦
孙越
名之以父

'''

print(""30)

j = 0
while j < len(my_list):

print(my_list[j])
j += 1
'''
郭德纲
于谦
孙越
名之以父

'''

3、CRUD 增删改查
(1)增加数据

向列表中添加数据的方法,都是直接在原列表中进行添加的,不会返回新的列表

my_list = ["郭德纲","于谦",'孙越','名之以父']
print(my_list)

列表:append(数据)向列表的尾部追加数据

my_list.append("aa")
print(my_list) # ['郭德纲', '于谦', '孙越', '名之以父', 'aa']
result = my_list.append(12)
print(result) # None 关键字,表示空
print(my_list) # ['郭德纲', '于谦', '孙越', '名之以父', 'aa', 12]

列表.insert(下标,数据)在指定的下标位置进行添加数据

my_list.insert(0,"isaac")
print(my_list) # ['isaac', '郭德纲', '于谦', '孙越', '名之以父', 'aa', 12]
print(my_list.insert(5, 3.24 )) # None

列表.extend(可迭代对象) # str类型和列表,会将可迭代对象中的数据逐个添加到原列表的末尾

my_list.extend('helli')
print(my_list) # ['isaac', '郭德纲', '于谦', '孙越', '名之以父', 3.24, 'aa', 12, 'h', 'e', 'l', 'l', 'i']
my_list.extend([1,'python',3])
print(my_list) # ['isaac', '郭德纲', '于谦', '孙越', '名之以父', 3.24, 'aa', 12, 'h', 'e', 'l', 'l', 'i', 1, 'python', 3]

在这里Python被作为一个整体输出,需要带引号才会被认为是作为整体的

(2)删除数据

my_list = [1, 2, 4, 5, 6, 9]

1、根据元素的数据值删除remove(数据值),直接原列表中的数据

my_list.remove(4)
print(my_list) # [1, 2, 5 ,6, 9]

print(my_list.remove(4)) # 程序报错,要删除的数据不存在

2、 根据下标删除

2.1 pop(下标) :默认删除最后一个数据,返回删=删除的内存

num = my_list.pop() # 删除最后一个数据
print(num) # 9
print(my_list) # [1, 2, 5, 6]

num = my_list.pop(2) # 删除下标为2的数据 5
print(num)
print(my_list) # [1, 2, 6]

2.2 del 列表[下标]

del my_list[1]
print(my_list) # [1, 6]

del my_list[10] # 删除下标不存在的,会报错

(3)修改数据
直接修改即可

(4)数据查询

my_list = [1, 3.14, 'isaac' , True]
num = my_list.index(3.14) # 1
print(num)

num1 = my_list.index(100) # 程序报错,因为数据不存在

count() 统计出现的次数

num2 = my_list.count(1)
print(num2) # 2 True算 1

in / not in : 判断是否存在,存在是True,不存在是False,一般和if结合使用

num3 = 3.14 in my_list
print(num3) # True

num3 = 3.14 not in my_list
print(num3) # False

 4、列表的排序和逆置

想要对列表中的数据进行排序,前提是列表中的数据类型是一样的

my_list = [1, 5, 3, 7, 9, 6]

列表.sorted(列表) 排序,不会在原列表中进行排序,会得到一个新的列表

my_list.sort() # 默认是从小到大的,即升序

my_list.sort(reverse=True) # 通过reverse=True,从大到小排序

print(my_list)

补充:sorted(列表) 排序,不会在原列表中进行排序,会得到一个新的列表

my_list1 = sorted(my_list) # [1, 3, 5, 6, 7, 9]
my_list2 = sorted(my_list,reverse=False) # [1, 3, 5, 6, 7, 9] ,填False的话,相当于是没改变,还是升序的
my_list3 = sorted(my_list,reverse=True) # [9, 7, 6, 5, 3, 1]
print(my_list)
print(my_list1)
print(my_list2)
print(my_list3)

print(""30)

my_list4 = ['a', 'b', 'c', 'd', 'e']

逆置

my_list5 = my_list4[::-1] # 得到一个新的列表
print(my_list4)
print(my_list5) # ['e', 'd', 'c', 'b', 'a']

在原列表直接逆置 列表,reverse()

print(my_list4.reverse()) # None

my_list4.reverse()
print(my_list4) # ['e', 'd', 'c', 'b', 'a']

5、列表嵌套
school_names = [['北京大学', '清华大学'],

            ['北京邮电大学', '西安邮电大学', '重庆邮电大学'],
            ['山东大学', '南开大学']]

print(school_names[1]) # ['北京邮电大学', '西安邮电大学', '重庆邮电大学']
print(school_names1) # 西安邮电大学
print(school_names1[1]) # 安

山东大学

print(school_names2)

for schools in school_names: # 先遍历外层循环,大列表

# print(schools)  # 列表
for name in schools:  # 再遍历小循环,内层列表
    print(name)


6、案例:分配办公室
import random

1、定义学校列表

schools = [[], [], []] # 三个小列表就是三个办公室,对应的下标是 0 1 2

2、定义老师列表

teachers = ['A','B','C','D','E','F','G','H']

3、让老师抓阄

3.1 遍历老师列表

for teacher in teachers :

# 3.2 抓阄产生随机数
num = random.randint(0, 2)  # 产生的随机数,相当于是办公室的下标
# 在randint里面包含结束位置的(Python里面唯一一个包含结束位置的)
# 3.2 老师进入办公室,蒋老师名字添加到办公室列表中
schools[num].append(teacher)

print(schools)

for office in schools:

print(f'该办公室老师的个数为{len(office)},办公室老师的名字是:')
# 相当于是遍历里面每个列表的长度
for teacher in office:
    print(teacher,end=' ')
print()

相关文章
|
2月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
170 1
|
3月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
334 1
|
2月前
|
开发者 Python
Python列表推导式:优雅与效率的完美结合
Python列表推导式:优雅与效率的完美结合
384 116
|
2月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
404 119
|
3月前
|
缓存 监控 数据可视化
微店item_search - 根据关键词取商品列表深度分析及 Python 实现
微店item_search接口可根据关键词搜索商品,返回商品信息、价格、销量等数据,适用于电商检索、竞品分析及市场调研。接口需通过appkey与access_token认证,支持分页与排序功能,Python示例代码实现调用流程,助力商品数据高效获取与分析。
|
2月前
|
开发者 Python
Python列表推导式:优雅与效率的完美融合
Python列表推导式:优雅与效率的完美融合
319 104
|
2月前
|
Python
Python列表推导式:优雅与效率的艺术
Python列表推导式:优雅与效率的艺术
257 99
|
2月前
|
数据处理 Python
解锁Python列表推导式:优雅与效率的完美融合
解锁Python列表推导式:优雅与效率的完美融合
265 99
|
2月前
|
开发者 Python
Python列表推导式:一行代码的艺术与力量
Python列表推导式:一行代码的艺术与力量
389 95
|
3月前
|
开发者 Python
Python神技:用列表推导式让你的代码更优雅
Python神技:用列表推导式让你的代码更优雅
437 99

推荐镜像

更多