前言:
此刻看官们对“代码的类型包括哪些”大约比较关怀,小伙伴们都想要剖析一些“代码的类型包括哪些”的相关内容。那么小编在网上网罗了一些有关“代码的类型包括哪些””的相关知识,希望咱们能喜欢,朋友们一起来了解一下吧!引入
通过前面学习的字符串我们可以实现用它存储一串信息,例如一个人的名字 "姚明",那么如何存储咱们班所有同学的名字呢?
定义100个变量,每个变量存放一个学生的姓名可行吗?有更好的办法吗?
答:列表
定义
定义列表的方式是[]
如下:用列表存储了3个学生的姓名
stu_names = ['张三', '李四', '王五']
如下:用列表存储了5个分数
scores = [100, 99, 100, 95, 90]基本使用下标
列表中存储的多个数据,我们可以对这些数据任意的使用
方式是:通过下标可以实现定位,然后就可以用这个数据
例如:
stu_names = ['张三', '李四', '王五']print(stu_names[0]) # 此时只输出张三stu_names[0] = "顾安"print(stu_names[0]) # 此时只输出顾安
注意:下标依然是从0开始使用
切片
切片具体的知识我们已经学习过了,在列表也是支持切片操作的
stu_names = ['张三', '李四', '王五']stu_names[1:3] # 此时得到一个新列表 [李四', '王五']
列表逆序:
stu_names = ['张三', '李四', '王五']stu_names = [::-1] # 得到一个新列表['王五', '李四', '张三']遍历
所谓列表遍历,就是指将列表中的所有的数据依次获取打印
方式一:使用for循环 (首选)
stu_names = ['张三', '李四', '王五']for name in stu_names: print(name)
运行结果:
张三李四王五
方式二:使用while循环
stu_names = ['张三', '李四', '王五']length = len(stu_names)i = 0while i < length: print(stu_names[i]) i += 1
运行结果:
张三李四王五注意点
学习其他编程语言的同学,此时能够看到Python中的列表与C语言、C++语言、Java中的数组很类似
相同点:列表和数组都能实现多个数据的存储
不同点:列表可以存储不同类似的数据,而数组只能存储相同数据类型。
如下代码,完成了一个列表存储了多个信息
teacher = ["伍佰", "台湾省台北市", 18, 176.5] # 18为年龄,176.5为身高
技巧:虽然Python中的列表可以存储多个不同的数据类型,但一般情况下我们很少这么做,而是把数据类型相同的数据放到一个列表,这样操作时会更加方便,否则就会出现一会整数,一会字符串很容易出错
如果真的需要存储多个数据,例如一个人的信息由多个组成,此时一般用Python中的字典来进行存储
列表的相关操作
列表,最大的特点能够存储多个数据,一般情况下我们需要对这个列表进行数据的增删改查,详细功能如下
数据增加(append、extend、insert)
append 方法
通过append可以向列表添加元素
格式:
列表.append(新元素数据)
示例:
# 定义列个表存储3个学生的姓名stu_names = ['张三','李四','王五']print("-----添加之前,列表的数据-----")for name in stu_names: print(name)# 提示、并添加元素temp = input('请输入要添加的学生姓名:')stu_names.append(temp)print("-----添加之后,列表的数据-----")for name in stu_names: print(name)
extend 方法
通过extend可以将另一个列表中的元素逐一添加到列表中
格式:
列表.extend(另外一个列表)
示例:
>>> a = [1, 2]>>> b = [3, 4]>>> a.append(b)>>> a[1, 2, [3, 4]]>>> a.extend(b)>>> a[1, 2, [3, 4], 3, 4]
insert 方法
insert(index, object)在指定位置index(索引,理解为下标即可)前插入元素object
>>> a = [0, 1, 2]>>> a.insert(1, 3)>>> a[0, 3, 1, 2]数据修改
修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
格式:
列表[下标] = 新数据
示例:
# 定义列个表存储3个学生的姓名stu_names = ['张三', '李四', '王五']print("-----修改之前,列表的数据-----")for name in stu_names: print(name)# 修改元素stu_names[1] = '赵六'print("-----修改之后,列表的数据-----")for name in stu_names: print(name)数据查询(in、not in、count)
所谓的查找,就是看看指定的元素是否存在
in、not in 查询列表中的元素是否存在
查找的常用方法为:
in(存在),如果存在那么结果为true,否则为falsenot in(不存在),如果不存在那么结果为true,否则false
in格式:
数据 in 列表
not in 格式:
数据 not in 列表
示例:
# 待查找的列表stu_names = ['张三','李四','王五']# 获取用户要查找的名字find_name = input('请输入要查找的姓名:')# 查找是否存在if find_name in stu_names: print('找到了名字')else: print('没有找到')
count 查询元素个数
格式:
列表.count("要查询的数据") # 结果就是找到的数据的个数
In [5]: nums = [1, 2, 3, 4, 5, 1, 2, 3]In [6]: nums.count(1) # 查找的数据1 一共有2个,所以结果为2Out[6]: 2In [7]: nums.count(9) # 没有找到数据9 所以结果为0Out[7]: 0数据删除(del、pop、remove)
列表元素的常用删除方法有:
del:根据下标进行删除pop:删除最后一个元素remove:根据元素的值进行删除
del
movie_names = ['加勒比海盗', '骇客帝国', '第一滴血', '指环王', '霍比特人', '速度与激情']print('------删除之前------')for name in movie_names: print(name)del movie_names[2] # 这里根据下标进行删除print('------删除之后------')for name in movie_names: print(name)
pop
movie_names = ['加勒比海盗', '骇客帝国', '第一滴血', '指环王', '霍比特人', '速度与激情']print('------删除之前------')for name in movie_names: print(name)movie_names.pop() # 删除最后1个print('------删除之后------')for name in movie_names: print(name)
remove
movie_names = ['加勒比海盗', '骇客帝国', '第一滴血', '指环王', '霍比特人', '速度与激情']print('------删除之前------')for name in movie_names: print(name)movie_names.remove('指环王') # 删除指定的数据print('------删除之后------')for name in movie_names: print(name)数据排序(sort、reverse)
sort
sort方法是将列表按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
>>> a = [1, 4, 2, 3]>>> a.sort()>>> a[1, 2, 3, 4]>>> a.sort(reverse=True)>>> a[4, 3, 2, 1]
reverse
reverse方法是将列表倒叙
>>> a = [1, 4, 2, 3]>>> a[1, 4, 2, 3]>>> a.reverse()>>> a[3, 2, 4, 1]列表嵌套什么是列表嵌套
类似while循环的嵌套,列表也是支持嵌套的
一个列表中的元素又是一个列表,那么这就是列表的嵌套
school_names = [ ['北京大学', '清华大学'], ['南开大学', '天津大学', '天津师范大学'], ['山东大学', '中国海洋大学']]应用
一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配
import random# 定义一个列表用来保存3个办公室offices = [[], [], []]# 定义一个列表用来存储8位老师的名字names = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']# 遍历所有的老师,随机安排到0、1、2号办公室for name in names: random_num = random.randint(0, 2) offices[random_num].append(name)i = 1for office_names in offices: print('办公室%d的人数为:%d' % (i, len(office_names))) i += 1 for name in office_names: print("%s" % name, end=' ') print("\n") print("-" * 20)
运行结果如下: (因为是随机 所以每次运行结果都可以不同)
办公室1的人数为:1G --------------------办公室2的人数为:2A B --------------------办公室3的人数为:5C D E F H
标签: #代码的类型包括哪些