day5字典的方法,多变量赋值与for循环的结合,购物车的实现

day5内容

  1. 字典

  2. 字典的增删改查

  3. 字典与列表元组的嵌套

  4. 多变量赋值与for循环的结合(与列表,元组的结合)

  5. 购物车的实现

1.字典:

  通过键值对存放大量,无序的,各种数据类型的,关系型数据

  不可变可哈希的数据,三种基本数据(int,bool,str)和元组

  不可哈希(可变)的数据类型,列表,字典,集合

  容器型数据类型(保留数据的原有数据类型),列表元组字典

  非容器型数据,int,bool,str

  字典的key值必须可哈希(hash)不可变的数据类型,键必须是唯一的

2.字典的增删改查

增:两种方法

  1. 通过key值直接增加,dict[key] = value,有则覆盖,无则添加
  2. setdefaut()方法,dict.setdefaut(key,value),有则不改,无则添加

删:

  按key键删除,pop(key)方法,有返回值,返回key键对应的value,没有key则会报错,因此可设定返回值,没有key值时返回设定值pop(key,设定返回值)

  popitem()方法随机删除,返回元组存放的键值对,py3.6之前字典是无序的,此方法随机删除,3.6及之后字典是有序的,popitem()方法删除字典最后一组键值对,返回元组存放的键值对

  clear()方法,清空字典

  del方法,从内存级别删除,按键值对删除del [key]

改:

  按键值对更改,与增的第一种方法相同,dict[key] = new value

扫描二维码关注公众号,回复: 107293 查看本文章

  update方法,dict.update(dict1)将dict1的键值对覆盖、增加到dict

查:

  通过key值查询,for循环遍历查询(in与字典的结合,in只能遍历字典的key值,输出value值,可以用key值关联)

  keys()方法,values()方法,items()方法,不对原字典进行修改,生成特殊数据类型的类似列表的dict_keys,dict_values,dict_items数据类型的数据

  keys()将字典的key值生成类似列表的dict_keys数据类型[]

  values()方法将字典的values值生成类似列表的dict_values类型[]

  items()方法,将字典的键值对以元组数据的方式存放在类似列表的dict_items类型[]中

  dict_keys,dict_values,dict_items三种数据类型可以通过list()括起来,改为list类型,从而进行增删改查的操作

其他方法,字典有len()方法,输出键值对个数,但是没有count方法

3.字典与列表元组的嵌套,

  先找到目标元素的位置或上一级位置,进行字典,列表,元组的,字符串的相应操作,考虑是否已经修改原数据,没有修改则需要赋值

4.多变量的赋值,与for..in循环的结合

  a,b = 1,2

  a,b =(1,2)元组

  a,b = [1,2]列表

  a,b = {"1":1,"2":2}字典方法,字典赋值会将字典的key值赋给变量

  for a,b in [[1,2],[3,4],[5,6]]: print(a,b)会将1,3,5赋值给2,4,6赋值给b,将右边数据的元素的下一级元素分别赋给左边同等数量的变量

5.购物车的实现

  可以构建字典,通过字典提取商品信息和序号

  也可以不构建字典,用列表的索引与商品序号的加一运算,计算数据

#思路用字典做,要求1输出序号和商品名称,使用for..in循环,或者用items()方法
#构建字典
li = ["手机", "电脑", '鼠标垫', '游艇']
dic,dict = {},{}
for i in li:
    dic[li.index(i)+1] = i
# print(dic),构建完成,输出字典键值对
while True:
    for i,v in dic.items():
        print(i,v)#序号+商品
    choice = input("请输入序号").strip()
#2,3,4功能判断先后顺序
    if choice.upper() == "Q":
        print(dic)
        break
    elif choice.isdigit() and int(choice) in dic.keys():
        print(dic[int(choice)])
        dict[int(choice)] = dic[int(choice)]
    else:
        print("输入信息有误,请重新输入")
用字典实现
li = ["手机", "电脑", '鼠标垫', '游艇']
dict = {}
while True:
    for i in range(0,len(li)):
        print(i+1,li[i])
    order = (input("请输入序号1到"+str(len(li))+ ",输入Q或q退出").strip())
    if order.upper() == "Q":
        print("您选择的商品列表如下:\n",dict)
        break
    elif order.isdigit() and int(order) in range(0,len(li)):
        print("商品名称为:" + li[int(order) - 1])
        dict[order] = li[int(order) - 1]
    else:
        print("输入有误,请重新输入")
依赖现有列表实现

  

猜你喜欢

转载自www.cnblogs.com/rain-chenwei/p/lizhi_rain.html