【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月前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
72 3
|
13天前
|
索引 Python
Python列表
Python列表。
42 8
|
16天前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
29 9
|
24天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
53 14
|
26天前
|
安全
Python-打印99乘法表的两种方法
本文详细介绍了两种实现99乘法表的方法:使用`while`循环和`for`循环。每种方法都包括了步骤解析、代码演示及优缺点分析。文章旨在帮助编程初学者理解和掌握循环结构的应用,内容通俗易懂,适合编程新手阅读。博主表示欢迎读者反馈,共同进步。
|
26天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
36 10
|
1月前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
191 5
|
2月前
|
算法 决策智能 Python
Python中解决TSP的方法
旅行商问题(TSP)是寻找最短路径,使旅行商能访问每个城市一次并返回起点的经典优化问题。本文介绍使用Python的`ortools`库解决TSP的方法,通过定义城市间的距离矩阵,调用库函数计算最优路径,并打印结果。此方法适用于小规模问题,对于大规模或特定需求,需深入了解算法原理及定制策略。
46 15
|
2月前
|
机器学习/深度学习 人工智能 算法
强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用
本文探讨了强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用,通过案例分析展示了其潜力,并讨论了面临的挑战及未来发展趋势。强化学习正为游戏AI带来新的可能性。
122 4
|
2月前
|
数据处理 开发者 Python
Python中的列表推导式:简洁高效的数据处理
在编程世界中,效率和可读性是代码的两大支柱。Python语言以其独特的简洁性和强大的表达力,为开发者提供了众多优雅的解决方案,其中列表推导式便是一个闪耀的例子。本文将深入探讨列表推导式的使用场景、语法结构及其背后的执行逻辑,带你领略这一特性的魅力所在。