列表、字典、集合

一、元素分类

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

即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

list = [11,22,33,44,55,66,77,88,99,90]
dict ={'k1':[] , 'k2':[]}
for x in list:
    if x >66:
        dict.get('k1').append(x)
    else:
        dict.get('k2').append(x)
print(dict)

二、查找

查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。

    li = ["alec", " aric", "Alex", "Tony", "rain"]
    tu = ("alec", " aric", "Alex", "Tony", "rain") 
    dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}

li = ["alec", " aric", "Alex", "Tony", "rain"]
for i in range(len(li)):
    li[i]=li[i].strip()
    if (li[i].startswith('a') or li[i].startswith('A')) and li[i].endswith('c'):
        print(li[i])
print(li)

tu = ("alec", " aric", "Alex", "Tony", "rain")
z = list(tu)
for i in range(len(z)):
    z[i] = z[i].strip()
    if (z[i].startswith('a') or z[i].startswith('A')) and z[i].endswith('c'):
        print(z[i])
        tu = tuple(z)
print(tu)

dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
for i in dic:
    key = dic[i]
    key = key.strip()
    dic[i] = key
    if (key.startswith('a') or key.startswith('A')) and key.endswith('c'):
        print(key)
print(dic)

三、

输出商品列表,用户输入序号,显示用户选中的商品。

li = ["手机", "电脑", '鼠标垫', '游艇']
for i,j in enumerate(li):
    print(i+1,j,end=' ')
while True:
    a = (input('\n请输入商品序号:'))
    if a.isspace() or not a:
        print('输入为空,请重新输入:')
        continue
    elif a.isdigit() == True :
        break
    else:
        print('输入非数字,请重新输入:')
        continue
print('所选商品:', li[int(a) - 1])

四、购物车
功能要求:


要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车
goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},

]


shopcart = []   #定义购物车为空列表

tag = True
while tag:
    money = input('请输入总资产:')
    if money.isdigit():     #判断输入是否为数字
        money = int(money)
    else:
        print('输入有误,请重新输入!')
        continue
    while tag:
        print('商品列表'.center(46,'='))
        for i,j in enumerate(goods):
            print(i+1,j['name'],j['price'])     #商品序号 起始0+1
        choice = input('请选择商品序号(充值:w 移除商品:e 查看购物车:r 结算:t 退出:q):')
        if choice.isdigit():
            choice = int(choice)
            if choice <= len(goods) and choice !=0:     #在序号范围内且不为0
                item = goods[choice - 1]    #对应 序号-1
                if item['price'] <= money:      #商品总额不大于总资产
                    shopcart.append(item)       #加入购物车
                    money -= item['price']
                    print('选购列表'.center(46,'-'))
                    for list in shopcart:
                        print('[',list['name'],list['price'],']',end=' ')
                    print('\n','当前余额为%s' %money )
                else:
                    print('余额为%s,无法购买,请充值。' %money)
            else:
                print('输入有误,请重新输入!')
        elif choice == 'w':     #充值
            while True:
                print('充值'.center(48, '='))
                money1 = input('请输入充值金额(返回:b):')
                if money1 == 'b':
                    break
                if money1.isdigit():
                    money += int(money1)    #类型转换
                    print('当前可用余额为:%s' %money)
                    break
                else:
                    print('输入有误,请重新输入!')
        elif choice == 'e':     #修改购物车
            while True:
                print('移除商品'.center(46, '='))
                for m,n in enumerate(shopcart):
                    print(m + 1,'[',n['name'],n['price'],']')
                remove = input('请输入移除商品序号(返回:b):')
                if remove == 'b':
                    break
                if remove.isdigit():
                    remove = int(remove)
                    if remove <= len(shopcart) and remove !=0:
                        item1 = shopcart[remove - 1]
                        del shopcart[remove - 1]
                        money += item1['price']
                        print('选购列表'.center(46,'-'))
                        for list1 in shopcart:
                            print('[',list1['name'],list1['price'],']',end=' ,')
                        print('\n','已移除商品[%s],当前可用余额为:%s' %(item1['name'] , money))
                    if len(shopcart) == 0:
                        print('当前购物车为空,返回商品列表。')
                        break
                else:
                    print('输入有误,请输入商品序号!')
        elif choice == 'r':     #查看购物车
            while True:
                print('查看购物车'.center(45, '='))
                for x, y in enumerate(shopcart):
                    print(x + 1, '[', y['name'], y['price'], ']')
                print('余额:%s' % money)
                inp = input('输入[b]返回:')
                if inp == 'b':
                    break
                else:
                    print('输入有误,请重新输入!')
        elif choice == 't':     #商品结算
            print('结算'.center(48,'='))
            for list in shopcart:
                print('[',list['name'], list['price'],']')      #显示选购商品
            print('余额:%s' % money)
            print(50 * '=')
            print('欢迎下次光临!')
            tag = False     #退出循环
        elif choice == 'q':
            print(50 * '=')
            print('欢迎下次光临!')
            tag = False
        else:
            print('输入有误,请重新输入!')

选做题:用户交互,显示省市县三级联动的选择


dic = {
    "河北": {
        "石家庄": ["鹿泉", "藁城", "元氏"],
        "邯郸": ["永年", "涉县", "磁县"],
    }
    "河南": {
        ...
    }
    "山西": {
        ...
    }
 
}



Python编程语言中,有四种常用的集合数据类型,它们分别是列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。列表是一种有序和可更改的集合,允许重复的成员。元组是一种有序且不可更改的集合,也允许重复的成员。字典是一个无序、可变且有索引的集合,其中没有重复的成员。而集合是一种无序和无索引的集合,没有重复的成员。这四种集合数据类型在Python中都有着不同的特点和用途。 在Python中,列表、元组和字符串都属于序列,它们的元素都可以通过编号进行访问。而字典则属于映射,其中的元素是以键值对的形式存在的。集合则不属于序列或映射中的任何一种,它是一种独立的数据类型,用于存储一组不重复的元素。 总结起来,Python中的列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)都是常用的集合数据类型,它们各自有着不同的特点和用途。列表是有序和可更改的集合,元组是有序且不可更改的集合字典是无序、可变且有索引的集合集合是无序和无索引的集合。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [浅谈python四种集合数据类型—【列表、元组、集合字典】](https://blog.csdn.net/QWERTYzxw/article/details/121479048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python 元组、集合字典](https://download.csdn.net/download/weixin_38603219/13752298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值