实验02、列表、元组、字典和集合(12题)

这篇博客旨在通过一系列练习题帮助读者熟悉Python中的列表、元组、字典和集合操作,包括创建、删除、元素访问、过滤、切片、成员测试运算符、排序、生成器推导式、序列解包和集合运算等。通过解决这些题目,读者将能深入理解Python数据结构的使用方法。
摘要由CSDN通过智能技术生成

【实验目标】 1) 熟悉Python列表创建与删除。 2) 熟练掌握Python列表元素增加、删除的方法。
3) 熟练掌握列表推导式,能够使用列表推导式生成符合特定条件的列表。
4) 熟练掌握切片的用法,能够使用切片访问列表元素,能够使用切片为列表增加、删除、修改元素。 5) 熟悉+、*运算符对列表的作用。
6) 理解和熟练运用成员测试运算符in在遍历序列元素。 7) 熟练掌握列表排序方法sort()和内置排序函数sorted()的用法。
8) 熟悉Python元组、字典、集合的创建与删除。 9) 熟练掌握生成器推导式用法。
10) 理解和熟练运用成员测试运算符in在遍历序列元素。 11) 掌握序列解包的用法。 【学习重点】
 使用range对象创建列表、列表元素访问、列表推导式、列表切片。
 元组创建与访问、生成器推导式、字典的get()方法、集合运算、序列解包。

1、给出一个包含若干整数的列表[23,16,18,19,76,121,33,57,80],输出一个新列表,要求新列表中只包含原列表中的偶数。提示:可以使用list、filter、lambda函数完成。

lst = [23,22,14,11,33,44,78,47]
print(list(filter(lambda x:x%2==0,lst))) #第一个参数为函数时,将第二个参数中每一个元素代入函数进行运算,把返回Ture的值并成一个列表

2、给出一个包含若干整数的列表[23,16,18,19,76,121,33,57,80],输出列表中的所有整数连乘的结果。提示:可以使用reduce、lambda函数完成。

from functools import reduce 
lst=[23,16,18,19,76,121,33,57,80]
print(reduce(lambda x,y:x*y,lst))

3、列表切片(教材习题3.5)
编写程序,用户输入一个列表和两个整数作为下标,然后用切片获取并输出介入两个下标之间的元素组成的子列表。例如,用户输入[1,2,3,4,5,6]和2,5后,程序输出[3,4,5,6]。

x = input('please input a list:')
x = eval(x)
start,end = eval(input('please input the start and the end positions:'))
print(x[start:end+1])

4、单词长度(crr23)
输入一句英文句子,例如:the scenery along the should be and the mood at the view,输出其中最长的单词及长度。

sen = input("请输入一句英文:")
words = sen.split()
#将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中
#(不包含分隔符),作为方法的返回值反馈回来。
length = [len(word) for word in words]
maxlen = max(length)
print("最长单词{} 有{}字母".format(words[length.index(maxlen)],maxlen))
#格式化输出

5、餐厅下午茶 (列表与元组 crr66)
某餐厅推出了优惠下午茶套餐活动。顾客可以以优惠的价格从给定的糕点和给定的饮料中各选一款组成套餐。已知,指定的糕点包括松饼(Muffins)、提拉米苏(Tiramisu)、芝士蛋糕(Cheese Cake)和三明治(Sandwich);指定的饮料包括红茶(Black tea,)、咖啡(Coffee)和橙汁(Orange Juice)。请问,可以搭配出哪些套餐供客户选择?请依次打印输出各种套餐。

snacks = ['Muffins','Tiramisu','Cheese Cake','Sandwich']
drinks = ['Black tea','Coffee','Orange Juice']
menus = []
for snack in snacks:
    for drink in drinks:
        menu = (snack,drink)
        menus.append(menu)
        
    for menu in menus:
            print(menu)

6、生成1000个0~100之间的随机整数,采用集合统计每个元素的出现次数。

import random
x = [random.randint(0,1000) for i in range(1000)]
s = set(x)#集合
for v in s:
    print(v,':',x.count(v))
print('='*30)
    

7、高考录取率(列表与元组crr39)
根据十年高考录取率表创建列表,并完成如下操作:
① 计算十年平均录取率。
② 找出录取率最高的年份。
表1 十年高考录取率表
年份 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
录取率 57% 56% 57% 62% 69% 72% 75% 76% 74.3% 74%

rate_years = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值