讲师:李浩然(在本次课中,”项“和”元素“有着相同的意义)
[]包含起来,每一个项之间用逗号分隔。
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 lsFalse
>>> 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 分的学生的名字以一个列表的形式打印出来。