讲师:李浩然
(在本次课中,”项“和”元素“有着相同的意义)
[]
包含起来,每一个项之间用逗号分隔。
students_all = [81, 94, 92, 71, 99, ……, 87] # 可以都是整数
students_none = [] # 可以没有任何元素在内
student_names = [‘Edward’, ‘Ben’, ……, ‘Tom’] # 可以都是字符串
student_heights = [1.75, 1.88, 1.62, ……, 1.73] # 可以都是浮点数(小数)
student_info = [‘Edward’, 19, ‘University of Toronto’] # 可以什么都有
student_combine = [[1, 2], 3] # 甚至可以将列表作为元素
>>> ls = ['foo', 'bar', 'baz', 'qux', 'quux', 'corge']
>>> ls[0] # 打印字符串格式的元素
'foo'
>>> ls[0] == ‘foo’ # 比较元素和字符串
True
>>> ls[-6] == ls[0] # 从尾部计数与从头部计数有相同意义
True
>>> ls[0] + ls[1] # 列表里的字符串元素可以当做字符串变量来处理
‘foobar’
>>> ls_1 = [1, 2, 3, 4, 5]
>>> ls_1[0] + ls_1[1] # 列表里的数字元素可以当做数字变量来处理
3
>>> ls_1[1] * ls_1[2] # 列表里的数字元素可以当做数字变量来处理
6
>>> ls = [81, 94, 92, 71, 99, 87]
>>> print(’列表 ls 所有元素的平均数是多少?’)
列表 ls 所有元素的平均数是多少?
>>>
变量名[开始的索引:结束的索引的后一个]
>>> ls = [‘foo’, ‘bar’, ‘baz’, ‘qux’, ‘quux’, ‘corge’]
>>>
>>> ls[1:2]
['bar']
>>> ls[0:-3] # 从第 0 项到第 -4 项
[‘foo’, ‘bar’, ‘baz’]
>>> ls[-4:] # 从第 -4 项到列表末尾
[‘baz’, ‘qux’, ‘quux’, ‘corge’]
>>> ls[:] # 从列表开头到列表末尾
[‘foo’, ‘bar’, ‘baz’, ‘qux’, ‘quux’, ‘corge’]
>>> ls = [‘foo’, ‘bar’, ‘baz’, ‘qux’, ‘quux’, ‘corge’]
>>> ls[-5:4]
>>> ls[:-2]
>>> ls[5:2]
>>> ls = [81, 94, 92, 71, 99, 87, 92]
>>> ls[0] = 90 # 列表中的项可以通过赋值号修改值
>>> ls
[90, 94, 92, 71, 99, 87, 92]
>>>
>>> 99 in ls # 可以用关键字 'in' 来验证列表中是否包含某项
True
>>> 100 in ls
False
>>> ls = [81, 94, 92, 71, 99, 87, 92]
>>> len(ls) # 项的个数
7
>>> min(ls) # 求最小值
71
>>> max(ls) # 求最大值
99
>>> sum(ls) # 求和
616
>>> ls = [81, 94, 92, 71, 99, 87]
>>> print(’列表 ls 所有元素的平均数是多少?’)
列表 ls 所有元素的平均数是多少?
>>>
>>> ls = [81, 94, 92, 71, 99, 87, 92]
>>> ls.append(92) # 在列表末尾添加一个项
>>> ls
[81, 94, 92, 71, 99, 87, 92, 92]
>>> ls.remove(92) # 删去第一个出现的匹配项
>>> ls
[81, 94, 71, 99, 87, 92, 92]
>>> ls.remove(100) # 删去一个不存在的值会得到错误
Error!
>>> ls = [81, 94, 92, 71, 99, 87, 92]
>>> ls.index(92) # 显示第一个匹配的项的索引
2
>>> ls.index(100) # 查找一个不存在的值会得到错误
Error!
>>> ls.count(92) # 数一数这个值在列表里出现了几次
2
>>> ls.reverse() # 将列表反转
>>> ls
[92, 87, 99, 71, 92, 94, 81]
>>> seq_1 = (81, 94, 92, 71, 99, 87, 92) # 元组的项可以为数字
>>> seq_2 = () # 元组可以为空
>>> seq_3 = ('Edward', 'is', 'handsome') # 元组的项可以为字符串
>>> seq_4 = ((0, 0), (1, 1)) # 元组的项可以为元组
>>> seq_5 = ([1, 2], 3) # 元组的项可以为列表
课外内容(不懂没关系):在元组内的列表的值是可以进行修改的。这是因为在元组中,列表的储存形式为内存地址,并非真正的值。在改变元组中的列表的值的时候,并没有改变在元组中的内存地址,从而使元组中的值依然是未改变的。(如果想明白的更透彻一点可以来找我)
>>> seq.append(92) # 不可以添加项
Error!
>>> seq.remove(92) # 不可以删除项
Error!
>>> seq[0] = 100 # 不可以修改值
Error!
{}
包含起来的,每一个项之间用逗号分隔,每一个项内用冒号:
来分隔键和值。
>>> dic_1 = { 882673: 100, 882674: 82, 882675: 93 }
>>> dic_2 = { ‘Edward’: 100, ‘Shawn’: 49 }
>>> dic_3 = { ‘Edward’: ‘University of Toronto’,
‘Shawn’: ‘Western University’,
‘Kate’: ‘Peking University’ }
注意:对于字典,我们需要注意的是,它的每一个项的键都是不可更改的。也就是说,当一个键一旦声明,就不可以再改变。若想改变,只能删除再添加。
同时,虽说字典的项的值可以是任何形式,但是字典的项的键却不可是列表,因为列表是可以被更改的。比如说:
dic = { [ 1, 2, 3 ]: ‘Edward’}
是非法的。假若在创造一个字典的时候,相同的键出现了两次,那只有最后一次是有效的。
>>> dic = { ‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4 }
>>> dic[‘a’] # 访问字典里的值
1
>>> dic[‘a’] = 2 # 修改字典里的值
>>> dic
{ ‘a’: 2, ‘b’: 2, ‘c’: 3, ‘d’: 4 }
>>> del dic[‘b’] # 删除字典里的值
>>> dic
{ ‘a’: 2, ‘c’: 3, ‘d’: 4 }
将如下表格以字典的形式表达出来。提示:列表也可以作为字典的值
>>>
将如下字典中的 Shawn 项的第二个成绩改为 98,然后将 Kate 项删除。
>>> dic = { ‘Edward’: [ 100, 97, 97 ],
‘Shawn’: [ 100, 100, 98 ],
‘Kate’: [ 97, 95, 92 ]}
>>> ls = [ { ‘a’: 1 }, ( 2, 3 ) ] # 列表中包含字典和元组
>>> seq = ( [ 1, 2, 3 ], { ‘a’: 1 } ) # 元组中包含列表和字典
>>> dic = { ‘a’: [ 1, 2, 3 ], ‘b’: ( 1, 2 ) }
# 字典的值中包含列表和元组。
# 注意,字典的键不允许有字典和列表出现。
>>> ls = [ { ‘a’: 1 }, ( 2, 3 ) ]
>>> ls[0][‘a’]
1
>>> ls[1][5]
3
>>> dic = { ‘a’: [ 1, 2, 3 ], ‘b’: ( 1, 2 ) }
>>> dic[‘a’][0] = 2
>>> dic
{ ‘a’: [ 2, 2, 3 ], ‘b’: ( 1, 2 ) }
join()
方法。tuple()
方法。list()
方法。示例:
>>> ls = [ 1, 2, 3 ]
>>> seq = ( 4, 5, 6 )
>>> str = ‘789’
>>> str_ls = ”“.join(ls) # 将列表转换为字符串
‘123’
>>> ls_str = list(str) # 将字符串转换为列表
[’7’, ’8’, ‘9’ ]
>>> seq_ls = tuple(ls) # 将列表转换为元组
( 1, 2, 3 )
>>> ls_seq = list(seq) # 将元组转换为列表
在数据库中,学生的名字与期末成绩以如下格式保存着:
{ ...,
学生 ID: [学生姓名, 语文成绩, 数学成绩, 英语成绩],
学生 ID: [学生姓名, 语文成绩, 数学成绩, 英语成绩],
学生 ID: [学生姓名, 语文成绩, 数学成绩, 英语成绩],
... }
例如:
{ ...
30: ['Shawn Pang', 78, 98, 94],
31: ['Edward Li', 100, 100, 100],
32: ['Imogene Liu', (80, 95, 92)],
...
}
像这样的学生数据,在数据库中有 100 条。同时,学生的学生 ID 是从 0 开始到 99 结束,且一直保持连续。
请写出一个 Python 程序,将所有平均成绩高于 90 分的学生的名字以一个列表的形式打印出来。