一.阅读并运行程序观察结果,理解序列-列表的索引、切片、相加、相乘。
a = [0, 2, 4, 6, 8]
b = [1, 3, 5, 7, 9]
print(a[0], b[4]) # 下标索引
print(a[1:4]) # 切片设置起点和终点,终点下标不包含
print(a[1:]) # 切片设置起点
print(a[:4]) # 切片设置终点
print(b[-3:-1]) # 切片设置起点和终点,倒数第三个至倒数第一个(不包含)
print(b[-3:]) # 切片设置起点,倒数第三个至最后
print(b[:-1]) # 切片设置终点,最开始至倒数第一个(不包含)
c = b[:] # 切片全范围
print(c)
d = a + b # 序列相加
print(d)
print(d[0:11:2]) # 切片设置步长
print(d[0::2]) # 切片终点到最后
print(d[:11:2]) # 切片起点在最开始
print(d[10:0:-1]) # 切片,倒着一个个取,从最后到第0个(不包含)
print(d[10::-1]) # 切片,倒着一个个取,从最后到最前
print(d[:5:-1]) # 切片,倒着一个个取,从最后到第5个(不包含)
e = [0] * 10 # 序列乘法
print(e)
e = [0, 1, 2] * 10 # 序列乘法
print(e)
二. 给定一个列表,用列表的内建函数求该列表的最大值、最小值、长度。
a=[11,22,33,44,55,66,44]
a = [11, 22, 33, 44, 55, 66, 44]
print("列表啊的最大值是{0}".format(max(a)))
print("列表啊的最小值是{0}".format(min(a)))
print("列表a的长度是{0}".format(len(a)))
三. 给定一个列表,对列表进行以下操作。lst=[‘小王’,’小张’,’xiaohua’,1,5,2.5,3.6,True]
lst=[‘小王’,’小张’,’xiaohua’,1,5,2.5,3.6,True]
- 打印输出第二个元素
- 切片第三至第五个元素并打印输出
- 第三个至第五个元素重新赋值,分别为77、88、99
- 删除列表中第1个元素
- 切片整体删除列表中第六至第八个元素。
lst = ['小王', '小张', 'hypoxia', 1, 5, 2.5, 3.6, True]
# (1)打印输出第二个元素
print(lst[1])
# (2)切片第三至第五个元素并打印输出
print(lst[2:5])
# (3)第三个至第五个元素重新赋值,分别为77、88、99
lst[2:5] = [77, 88, 99]
print(lst)
# (4)删除列表中第1个元素
del lst[0]
print(lst)
# (5)切片整体删除列表中第六至第八个元素
del lst[5:8]
print(lst)
四.给定一个列表,对列表进行以下操作。lst=[3,2,3]
- 列表增加一个元素‘hello’并打印输出lst
- 使用[‘to’,’be’,’or’,’’not,’to’,’be’,]扩展lst列表,打印输出lst
- 在位置为3的地方插入一个值:‘good’,打印输出lst
- 在位置为4的地方插入一个列表[‘Morning’],打印输出lst
- 在位置为5的地方插入多个值,依次放入66、77、88,打印输出lst
- 用count()函数查询‘to’出现的次数
- 用index ()函数查询‘be’首次出现的位置
- 移除第一个’to’
- 用循环移除所有的’to’
lst = [3, 2, 3]
lst.append('hello')
print("(1)列表增加一个元素‘hello’并打印输出lst:{0}".format(lst))
lst.extend(['to', 'be', 'or', 'not', 'to', 'be', ])
print(f"(2)使用[‘to’,’be’,’or’,’’not,’to’,’be’,]扩展lst列表,打印输出lst:{lst}")
lst.insert(3, 'good')
print(f"(3)在位置为3的地方插入一个值:‘good’,打印输出lst:{lst}")
lst.insert(4, ['Morning'])
print(f"(4)在位置为4的地方插入一个列表[‘Morning’],打印输出lst:{lst}")
insert_lst = [66, 77, 88]
lst[5:5] = insert_lst
print(f"(5)在位置为5的地方插入多个值,依次放入66、77、88,打印输出lst:{lst}")
print(f"(6)用count()函数查询‘to’出现的次数:{lst.count('to')}")
print(f"(7)用index ()函数查询‘be’首次出现的位置:{lst.index('be')}")
lst.remove('to')
print(f"(8)移除第一个’to’:{lst}")
while True:
try:
lst.remove('to')
except:
break
print(f"(9)用循环移除所有的’to’:{lst}")
五. 给定一个列表,对列表进行以下操作 lst=[4,6,2,1,7,9]
- 列表反转,打印输出lst
- 列表排序,打印输出lst
- 列表倒排序,打印输出lst
lst = [4, 6, 2, 1, 7, 9]
# (1)列表反转
lst.reverse()
print("反转后的列表:", lst)
# (2)列表排序
lst.sort()
print("排序后的列表:", lst)
# (3)列表倒排序
lst.sort(reverse=True)
print("倒排序后的列表:", lst)
六.给定一个嵌套列表,对列表进行以下操作。lst=[ [0,2,4,6,8], [1,3,5,7,9], [‘apple’, ’banana’ , ‘orange’] ]
- 打印第一个元素
- 打印第一个元素中的第二个元素
- 追加一个嵌套列表[11,22,33],打印输出lst
- 追加一个元素:100,打印输出lst
- 修改lst[0][0]的元素为’dog’,打印输出lst
- 修改第二个嵌套列表,修改为[‘aaa’, ‘bbb’, ‘ccc’]
lst = [[0, 2, 4, 6, 8], [1, 3, 5, 7, 9], ['apple', 'banana', 'orange']]
print(f"(1)打印第一个元素:{lst[0]}")
print(f"(2)打印第一个元素中的第二个元素:{lst[0][1]}")
lst.append([11, 22, 33])
print(f"(3)追加一个嵌套列表[11,22,33],打印输出lst:{lst}")
lst.append(100)
print(f"(4)追加一个元素:100,打印输出lst:{lst}")
lst[0][0] = 'dog'
print(f"(5)修改lst[0][0]的元素为’dog’,打印输出lst:{lst}")
count = 0
for lst1 in lst:
if type(lst1) == type([]):
count += 1
if count == 2:
lst[lst.index(lst1)] = ['aaa', 'bbb', 'ccc']
print(f"(6)修改第二个嵌套列表,修改为[‘aaa’, ‘bbb’, ‘ccc’]:{lst}")
七. 给定一个字典,进行如下操作data={‘Alice’:1234 , ‘Bob’:5678, ‘Chris’:1357, ‘David’:2468}
- 用列表[‘Apple’, ‘Orange’]创建字典d1,打印输出d1
- 字典d1增加一个键为’Bob’,值为888,打印输出d1
- 用d1去更新data,打印输出data
- 修改data中‘Bob’的值为1001,打印输出data
# 给定的字典
data = {'Alice': 1234, 'Bob': 5678, 'Chris': 1357, 'David': 2468}
# (1)用列表['Apple', 'Orange']创建字典d1
d1 = {'Apple': None, 'Orange': None}
print("d1:", d1)
# (2)字典d1增加一个键为'Bob',值为888
d1['Bob'] = 888
print("d1 after adding Bob:", d1)
# (3)用d1去更新data
data.update(d1)
print("data after updating with d1:", data)
# (4)修改data中'Bob'的值为1001
data['Bob'] = 1001
print("data after modifying Bob's value:", data)
八. 定义一个列表包含12个元素,存放一年365天中12月份的各自天数。完成以下功能:
- 用户输入数字,输出月份的英文和天数。
- 修改闰年2月份为29天,打印一年的总天数
- 排序所有的月份天数并输出
- 统计29天、30天、31天的月份各有多少,存入字典,键名为月份的英文单词。打印该字典。
days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
month = {1: 'January', 2: 'February', 3: 'March', 4: 'April'
, 5: 'May', 6: 'June', 7: 'July', 8: 'August'
, 9: 'September', 10: 'October', 11: 'November', 12: 'December'}
month_days = dict(zip(month.values(), days))
try:
input_month = int(input("请输入用户需要查询的月份(1~12):"))
if input_month > 12 or input_month < 1:
raise ValueError
except ValueError:
print("请输入正确的数字!")
print(f"{str(input_month)}月份的英文为{month[input_month]},天数为{month_days[month[input_month]]}")
month_days[month[2]] = 29
days[1] = 29
sumdays = 0
for i in month_days.values():
sumdays += i
print(f"闰年的天数为{sumdays}")
print(f"(3)排序所有的月份天数并输出:{sorted(list(month_days.items()), key=lambda x: x[1])}")
month1 = {'29天': days.count(29), '30天': days.count(30), '31天': days.count(31)}
print(month1)