【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()

相关文章
WK
|
8天前
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
63 36
WK
|
11天前
|
Python
python元组与列表的转换
在 Python 中,元组(tuple)和列表(list)是两种常用的数据结构,它们之间可以相互转换
WK
18 9
|
11天前
|
Python
探索Python中的列表推导式
【10月更文挑战第20天】在编程世界里,时间就是一切。Python的列表推导式是节约时间、简化代码的一大利器。本文将带你深入理解并有效利用这一强大工具,从基础到高级用法,让你的代码更加简洁高效。
|
11天前
|
Python
SciPy 教程 之 SciPy 模块列表 6
SciPy教程之常量模块介绍:涵盖公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率及力学单位。示例展示了角度单位转换为弧度的几个常用常量。
15 7
|
11天前
|
Python
SciPy 教程 之 SciPy 模块列表 7
`scipy.constants` 模块提供了常用的时间单位转换为秒数的功能。例如,`constants.hour` 返回 3600.0 秒,表示一小时的秒数。其他常用时间单位包括分钟、天、周、年和儒略年。
14 6
|
8天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
12 1
|
9天前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
|
10天前
|
Python
SciPy 教程 之 SciPy 模块列表 9
SciPy教程之常量模块介绍,涵盖多种单位类型,如公制、质量、角度、时间、长度、压强等。示例展示了如何使用`scipy.constants`模块查询不同压强单位对应的帕斯卡值,包括atm、bar、torr、mmHg和psi。
10 1
|
10天前
|
Python
SciPy 教程 之 SciPy 模块列表 8
SciPy教程之常量模块单位类型介绍。该模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例展示了部分长度单位的转换值,例如英寸、英尺、海里等。
12 1
|
10天前
|
C语言 开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第21天】在Python的世界里,代码的优雅与效率同样重要。列表推导式(List Comprehensions)作为一种强大而简洁的工具,允许开发者通过一行代码完成对列表的复杂操作。本文将深入探讨列表推导式的使用方法、性能考量以及它如何提升代码的可读性和效率。