作业

本文集提供了Python编程的多个实战案例,包括数据处理、列表操作、集合应用、字典管理及算法练习,适合初学者和进阶者提升技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中

即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
小提示:按照题意这里的k1和k2对应的value必须能存多个值

A = [11,22,33,44,55,66,77,88,99,90,111]
list1 =[]
list2= []
for big in A :
    if big > 66:
        list1.append(big)  #往空列表中添加元素
for small in A:
    if small <66 :
        list2.append(small)
dict1 ={"k1":list1,'k2':list2}
print(dict1)

2.简单购物车,要求如下:
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入  
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
小提示:打印的时候即需要拿到字典的key也需要拿到对应的value

msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
goods_name_list = list(msg_dic.keys())
price_list = list(msg_dic.values())
print(goods_name_list)
print(price_list)
flag = True
while flag :
    goods = input('要什么?>>>')
    if goods not in (goods_name_list):
        print('好好输入')
    else:
        amount = input ('买多少?>>>')
        if amount.isdigit():  #判断是否为纯数字
            amount = int (amount)
            order = goods_name_list.index (goods)
            price = amount*int(price_list[order])
            print(goods,amount,price)
            print("是否继续?是请点Y否请点N")
            key = input('请输入Y或者N:')
            if key == 'N':
                flag = False
            else:
                continue
        else:
            print('好好输入')
print("END")

 

3.统计s='hello alex alex say hello sb sb'中每个单词的个数
结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}

s='hello alex alex say hello sb sb'
dict1 = {}
list1 = s.split(' ') #切分生成单词列表
# print(list1)
set1 = set(list1) #转化成集合去重
# print(set1)
list2 = list(set1) #去重后重新转化成列表
# print(list2)
for i in list2:
dict1[i] = s.count(i)
print(dict1)

4.关系运算
  有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}

pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}
#   1. 求出即报名python又报名linux课程的学员名字集合
print(pythons & linuxs)
#   2. 求出所有报名的学生名字集合
print(pythons | linuxs)
#   3. 求出只报名python课程的学员名字
print(pythons - linuxs)
#   4. 求出没有同时这两门课程的学员名字集合
print(pythons ^ linuxs)

5. 对列表l=['a','b',1,'a','a']内的元素完成去重得到新列表.
拔高:如果想去重并且想保持列表原来的顺序该如何做?

l=['a','b',1,'a','a']
l.reverse()  #反转列表方便从后往前删除,保持前面需要保留的字符顺序不被破坏
for i in l:
    if l.count(i) >1:
        l.remove(i)  #从列表中移除
l.reverse()
print(l)

6.对如下列表中的元素去重(),得到新列表,且新列表一定要保持列表原来的顺序
l=[
{'name':'egon','age':18,'sex':'male'},
{'name':'alex','age':73,'sex':'male'},
{'name':'egon','age':20,'sex':'female'},
{'name':'egon','age':18,'sex':'male'},
{'name':'egon','age':18,'sex':'male'},
]  
小提示:去重不一定非要用集合

l=[
    {'name':'egon','age':18,'sex':'male'},
    {'name':'alex','age':73,'sex':'male'},
    {'name':'egon','age':20,'sex':'female'},
    {'name':'egon','age':18,'sex':'male'},
    {'name':'egon','age':18,'sex':'male'},
]
l.reverse()
for i in l:
    if l.count(i) >1:
        l.remove(i)
l.reverse()
print(l)

 

转载于:https://www.cnblogs.com/xp1315458571/p/11134858.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值