"""
列表(list)是一种有序的容器,放入list中的元素,将会按照一定顺序排列。
Alice同学某次考试语文(Chinese)、数学(Math)、英语(English)三科的成绩分别是92、75、99,
1、请使用list保存这些数据。
2、按科目显示分数
"""
# 列表中的元素类型可以不同
l1 = ['Alice', 'Chinese', 92, 'Math', 75, 'English', 99]
print(l1)
# ['Alice', 'Chinese', 92, 'Math', 75, 'English', 99]
# 分数和科目分别用两个列表显示,打印对应的分数
score = [92, 75, 99]
classes = ['Chinese', 'Math', 'English']
num = 0
for i in classes:
print(i + ':' + str(score[num]))
num += 1
"""
Chinese:92
Math:75
English:99
"""
"""
列表迭代
"""
L = ['Alice', 66, 'Bob', True, 'False', 100]
for item in L:
print(item)
# 空列表使用循环迭代时不会打印出东西
L1 = []
for item in L1:
print(item)
print('******************************')
"""
请使用迭代的方式按顺序输出列表 L = ['Alice', 66, 'Bob', True, 'False', 100] 的下标为偶数的元素
"""
# 1、输出下标为偶数的元素:
L = ['Alice', 66, 'Bob', True, 'False', 100]
num = 0
for i in L:
if num % 2 == 0:
print(i)
num += 1
print('---------------------------')
# 2、输出下标为奇数的元素
for i in L:
if num % 2 != 0:
print(i)
num += 1
# 2.1、输出下标为奇数,用continue的方式
for i in L:
num += 1
if num % 2 != 0:
continue
print(i)
print('==============================')
"""
列表按索引查询元素:打印索引对应元素时,超范围报错;但切片时超范围只是获取不到元素
"""
names = ['Alice', 'Bob', 'David', 'Ellena']
# print(names[4]) # IndexError: list index out of range
# print(names[-5]) # IndexError: list index out of range
sub_names = names[0:2]
print(sub_names) # ['Alice', 'Bob']
print(names[2:5]) # ['David', 'Ellena']
print(names[4:5]) # []
"""
五名同学的成绩可以用一个list表示:L = [95.5, 85, 59, 66, 72],请按照索引的方式分别打印出第一名、第二名、第三名。
"""
L = [95.5, 85, 59, 66, 72]
# 索引正序
print(L[0], L[1], L[4])
# 索引倒序
print(L[-5], L[-4], L[-1])
# 95.5 85 72
"""
列表中新增元素:
1、append():将元素添加到list的尾部,只能一个一个添加
2、insert(下标,元素) :将元素插入列表的指定下标位置,且之前的元素下标像后移
3、extend(可迭代对象):可以用来组装两个列表,将可迭代对象的元素插入到列表的尾部
"""
names = ['Alice', 'Bob', 'David', 'Ellena']
names.append('candy')
print(names)
names.insert(1, 'zoey')
print(names)
names.extend('cibo')
print(names)
names.extend([1, 'world'])
print(names)
"""
['Alice', 'Bob', 'David', 'Ellena', 'candy']
['Alice', 'zoey', 'Bob', 'David', 'Ellena', 'candy']
['Alice', 'zoey', 'Bob', 'David', 'Ellena', 'candy', 'c', 'i', 'b', 'o']
['Alice', 'zoey', 'Bob', 'David', 'Ellena', 'candy', 'c', 'i', 'b', 'o', 1, 'world']
"""
"""
练习:
已有列表['Alice', 'Bob', 'Candy', 'David', 'Ellena'],
利用append()方,insert(),extend()方法,把'Zero', 'Phoebe', 'Gen'三个元素的名字按首字母顺序插入到列表里去
"""
names = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
names.append('Phoebe')
names.insert(-1, 'Gen')
names.extend(['Zero'])
print(names) # ['Alice', 'Bob', 'Candy', 'David', 'Ellena', 'Gen', 'Phoebe', 'Zero']
"""
从list删除元素:
1、pop():默认删除列表的最后一个元素,也可指定下标删除
2、remove():删除列表中的某个元素
3、del L[0]:删除列表中的某个元素
del L:删除列表
"""
L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
L.pop()
L.pop(0)
print(L) # ['Bob', 'Candy', 'David']
L.remove('Candy')
print(L) # ['Bob', 'David']
del L[0]
print(L) # ['David']
del L
# print(L)
"""
二维数组
"""
alice_scores = [100, 89, 92]
bob_scores = [70, 65, 81]
candy_scores = [88, 72, 77]
all_scores = [alice_scores, bob_scores, candy_scores]
print(all_scores)
print(all_scores[1][2]) # 81
"""
练习:有三个长方体,他们的长宽高分别是[1, 2, 3], [5, 3, 2], [7, 3, 2],
定义在数组L中,L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]],请分别求出三个长方体的表面积
表面积计算公式:长×宽×2+宽×高×2+长×高×2
"""
L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]]
for i in L:
length = i[0]
width = i[1]
height = i[2]
area = length*width*2 + length*height*2 + width*height*2
print(area)