02元祖
1.元祖用途:是不可变的列表,能存多个值,但多个值只有取的需求而没有改的需求,那么用元祖最合理。
2.定义方式在()内用逗号分割开,可以存放任意类型的值
强调:当元祖内只有一个元素时,务必记住加一个逗号
x=('egon',)
print(type(x))
常用操作+内置的方法
1、按索引取值(正向取+反向取):只能取
names=('alex','egon','wxx')
names[0]=sb #不可变
2、names=('alex','egon','wxx','lxx','cxx')
for item in names:
print(item)
元祖类型总结
1.存一个值or存多个值
可以存多个值,值都可以是任意数据类型
2有序or无序
有序
3可变or不可变
不可变
2、字典
用于存放多个值,但是每一个值都有一个对应的key,key对值有描述性的
功能
当存放的值属于不同的状态是(年龄、身高、性别、体重),用字典可以明确地
区分不同值的用途
d={'name':'egon','age':18} #d=dict(...)
d=dict(a=1,b=2,c=3)
v=d.pop('a')
del d['a']
d.keys()
d.values()
d.items()
for k in d:
print(k,d[k])
for k in d.keys():
print(k,d[k])
for v in d.values():
pass
for k,v in d.items():
pass
d.get('a')
列表可变的底层原理
指的是索引所对应的值的内存地址是可以改变的
元祖不可变的底层原理
指的是索引所对应的值的内存地址是不可以改变
但多个值只有取的需求没有改的需求。__开头__结尾不是触发某种功能,而是python满足某种条件下自动触发的功能(不用调)
列表,元祖,字典说白了只是容器用来存放多个内存地址的。例如列表的名称空间只是存放元素的内存地址
列表之所以可变是因为列表可以把某一个索引所对应的内存地址给换掉,反过来说不可变就是无法把某一个索引所对应的内存地址换掉
队列和堆栈的概念
课堂练习
简单购物车完整版 msg_dic={'apple':100, 'tesla':200, 'book':50, 'pineapple':40,} shoppingcart=[] while True: for key in msg_dic: info='商品名:%s 价钱:%s'%(key,msg_dic[key]) print(info.center(50,'-')) name=input('请输入商品的名称<<:').strip() if name not in msg_dic: print('你买的东西不再这里傻叉,接着再输') continue else: print('您输的商品是对的,接下来输数量了') while True: count=input('请输入商品数量') if count.isdigit(): count=int(count) break else: print('商品的个数必须为整数傻逼') name, count for item in shoppingcart: if name==item['name']: item['count']+=count break else: price = msg_dic[name] inner = {'name': name, 'count': count, 'price': price} shoppingcart.append(inner) print(shoppingcart)
l= [11,22,33,44,55,66,77,88,99,90] final={'大于66':[],'小于66':[]} for i,j in enumerate(l): if int(j>66): final['大于66'].append(j) else: final['小于66'].append(j) print(final) a={'name':'璐哥','age':58,'sex':'male'} print(a.get('fdhuf','没找到')) print(a.get('name'))