Python语法习题——理解序列-列表的索引、切片、相加、相乘,给定一个列表,用列表的内建函数求该列表的最大值、最小值、长度。lst=[‘小王’,’小张’,’xiaohua’,1,5,2.5,3.6,

一.阅读并运行程序观察结果,理解序列-列表的索引、切片、相加、相乘。

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]

  1. 打印输出第二个元素
  2. 切片第三至第五个元素并打印输出
  3. 第三个至第五个元素重新赋值,分别为77、88、99
  4. 删除列表中第1个元素
  5. 切片整体删除列表中第六至第八个元素。
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]

  1. 列表增加一个元素‘hello’并打印输出lst
  2. 使用[‘to’,’be’,’or’,’’not,’to’,’be’,]扩展lst列表,打印输出lst
  3. 在位置为3的地方插入一个值:‘good’,打印输出lst
  4. 在位置为4的地方插入一个列表[‘Morning’],打印输出lst
  5. 在位置为5的地方插入多个值,依次放入66、77、88,打印输出lst
  6. 用count()函数查询‘to’出现的次数
  7. 用index ()函数查询‘be’首次出现的位置
  8. 移除第一个’to’
  9. 用循环移除所有的’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]

  1. 列表反转,打印输出lst
  2. 列表排序,打印输出lst
  3. 列表倒排序,打印输出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’] ]

  1. 打印第一个元素
  2. 打印第一个元素中的第二个元素
  3. 追加一个嵌套列表[11,22,33],打印输出lst
  4. 追加一个元素:100,打印输出lst
  5. 修改lst[0][0]的元素为’dog’,打印输出lst
  6. 修改第二个嵌套列表,修改为[‘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}

  1. 用列表[‘Apple’, ‘Orange’]创建字典d1,打印输出d1
  2. 字典d1增加一个键为’Bob’,值为888,打印输出d1
  3. 用d1去更新data,打印输出data
  4. 修改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月份的各自天数。完成以下功能:

  1. 用户输入数字,输出月份的英文和天数。
  2. 修改闰年2月份为29天,打印一年的总天数
  3. 排序所有的月份天数并输出
  4. 统计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)

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杪商柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值