每日分享
Optimism is a happiness magnet. If you stay positive, good things and good people will be drawn to you.
乐观是幸福的磁铁。 如果你保持积极态度,那么好事和好人将会被你吸引。
小闫语录:
生活中有一种现象,不知你是否有感觉。每当很倒霉的时候,各种倒霉事络绎不绝的到来;当一个人顺风顺水的时候,好事也会源源不断。及时调整心态,微笑出发。
前言
昨天的文章『每天 3 分钟,小闫带你学 Python(十)』讲解了字符串的相关操作,此处就不做回顾,直接开始今天的内容。
1.列表介绍
在保存单条数据时,使用字符串完美解决,当需要保存多条数据呢?答案便是列表。
列表格式如下:
[element1, element2, element3...]
元素之间使用逗号隔开,所有元素使用中括号包裹
注意:列表中的元素可以是任意类型,可以是数字,可以是字符串等。
1.1 打印列表
>>> mylist = ['EthanYan', 1, (1,)] >>> print(mylist) ['EthanYan', 1, (1,)]
将列表 mylist
赋值给变量,然后进行打印。(当然你可以直接打印列表,此处只是做演示)
1.2 列表的下标索引
>>> mylist = ['EthanYan', 1, (1,)] >>> mylist[0] 'EthanYan' >>> mylist[1] 1 >>> mylist[2] (1,) >>> mylist[3] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range
列表可以根据下标进行取值,如果超出下标范围会报错。
1.3 列表的切片操作
>>> mylist = ['EthanYan', 1, (1,)] >>> mylist[0:1] ['EthanYan'] >>> mylist[0:2] ['EthanYan', 1]
同样,列表也支持切片操作。
2.列表的循环遍历
2.1 使用 for 循环
上面提到可以使用下标索引进行取值,如果要求将所有的值取出来,是不是有些繁琐?如果再要求对每个值进行相关操作,是不是更麻烦?现在提供一种便捷的方式,那便是 for
循环。看如下示例:
mylist = ['EthanYan', 1, (1,)] for element in mylist: print(element)
输出结果为:
EthanYan 1 (1,)
是不是有些意思?既然可以使用 for
循环,那么一定可以使用 while
循环。下面继续。
2.2 使用 while 循环
mylist = ['EthanYan', 1, (1,)] # 计算列表长度 length = len(mylist) i = 0 while i < length: print(mylist[i]) i += 1
执行结果如下:
EthanYan 1 (1,)
计算列表长度使用到了 len() 函数,也许你会想:编程不是从 0 开始计算吗?使用长度的话不是会超出取值范围吗?最后一个值是会超出范围,但是我们
while
循环中使用到了<
,即长度取不到,取到前一个值,正好与下标相同。
3. 列表的嵌套
经过之前学习 if
条件判断的嵌套, for
循环的嵌套等等,是否已经猜出列表嵌套如何了?没错,列表的嵌套便是列表中嵌套列表,即列表元素是列表。形式如下:
schoolNames = [['北京大学','清华大学'], ['南开大学','天津大学','天津师范大学'], ['山东大学','中国海洋大学']]
也许你觉得这没什么用,下面看一个应用示例。
3.1 应用
一个学校,有3个办公室。现在有8位老师等待工位的分配,请编写程序,完成随机分配
先独立思考,然后再看下方答案
此处涉及到一个超纲的知识点,我们明天会讲解。此处做一个小提示:
列表中添加元素:
可以使用 append
方法,看如下实例:
mylist = ['EthanYan', 1, (1,)] mylist.append('Pythonnote') print(mylist)
输出结果:
['EthanYan',1,(1,),'Pythonnote']
可以看到
Pythonnote
添加到了列表的尾部。同时也说明列表是可变的类型。字符串是不变的,大家可以去尝试对字符串进行操作,然后观察原字符串是否发生变化?,此处留一个小作业。
3.2 应用答案
import random # 定义一个列表用来保存3个办公室 offices = [[],[],[]] # 定义一个列表用来存储8位老师的名字 names = ['A','B','C','D','E','F','G','H'] i = 0 for name in names: # random.randint(0,2) # 随机产生一个 0 到 2 之间的整数 index = random.randint(0,2) offices[index].append(name) i = 1 for tempNames in offices: print('办公室%d的人数为:%d'%(i,len(tempNames))) i+=1 for name in tempNames: print("%s"%name,end='') print("\n") print("-"*20)
输出结果为:
办公室1的人数为:1 C -------------------- 办公室2的人数为:3 ABE -------------------- 办公室3的人数为:4 DFGH --------------------
4.作业
今日学习目标:学习列表的相关概念,熟悉列表的形式,掌握列表的循环遍历、下标索引、切片等相关操作。
1.验证字符串是否是可变的类型?
小提示:可以对字符串进行操作,然后检查原字符串是否发生变化。
2.列表嵌套中应用进行练习。