五 元组
复制代码
#作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读
#定义:与列表类型比,只不过[]换成(),可以存放任意类型的值
age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))
# 强调: 当元组内只有一个元素时,务必记住加一个逗号
x=('egon',)
print(type(x))
#优先掌握的操作(同列表):
#1、按索引取值(正向取+反向取):只能取
#2、切片(顾头不顾尾,步长)
#3、长度
#4、成员运算in和not in
#5、循环
# #二:该类型总结
# 1 存一个值or存多个值
可以存多个值,值都可以是任意数据类型
# 2 有序or无序
有序
# 3 可变or不可变
不可变
names=('alex','egon','wxx','lxx','cxxx','lxx')
# del names[0] ##元组元素不可变
# names[0]='sb'
# print(names.count('lxx'))
# print(names.index('wxx',0,3))
注:
# 列表可变的底层原理:
指的是索引所对应的值的内存地址是可以改变的
# 元组不可变的底层原理:
指的是索引所对应的值的内存地址是不可以改变的
或者反过来说,只要索引对应值的内存地址没有改变,那么元组始终是没有改变的
#简单购物车,要求如下:
实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
###############程序###############
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
goods_l=[]
while True:
for key,item in msg_dic.items():
print('name:{name} price:{price}'.format(price=item,name=key))
choice=input('商品>>: ').strip()
if not choice or choice not in msg_dic:continue
count=input('购买个数>>: ').strip()
if not count.isdigit():continue
goods_l.append((choice,msg_dic[choice],count))
print(goods_l)
六 字典
#作用:存多个值,key-value存取,但每一个值都有一个key与之对应,key对值有描述性的功能(通常为字符串)
当存储多个值表示的不同的状态时
#定义:key必须是不可变类型,value可以是任意类型
info={'name':'egon','age':18,'sex':'male'} #本质info=dict({....})
或
info=dict(name='egon',age=18,sex='male')
或
info=dict([['name','egon'],('age',18)])
或
{}.fromkeys(('name','age','sex'),None)
#优先掌握的操作:
#1、按key存取值:可存可取
#2、长度len
#3、成员运算in和not in
#4、删除
#5、键keys(),值values(),键值对items()
#6、循环