第五天学习内容

时间:2023-01-11 20:44:55

---恢复内容开始---

一、字典相关概念:

1、数据类型划分:可变数据类型与不可变数据类型

①、可变数据类型:list、dict、set(集合)

②、不可变数据类型:元组、int、bool、str

字典是键值对:键:必须是不可变数据类型(元组、int、bool、str)

                         值:任意数据类型

举例:

dic = {'name': [ 'laowang', 'xiaowang']

          '班级情况':[ { 'num':54,‘age’:20'}]

         True:1

         (1,2,3):'无意义'

         }

2、字典优点:①、二分法查找数据速度快。②、可以存储大量关系数据。

二、字典的增删改查:

1、增:

①、直接加:

dic = {'name': '小二','age':13, 'hobby':'篮球'} dic['height'] = 165  # 字典中没有一样的键值对就会添加,有则覆盖
print(dic) dic['age'] = 15    # 13被15覆盖
print(dic)

②、setdefault方法:

dic = {'name': '小二','age':13, 'hobby':'篮球'} dic.setdefault('weight', 100) # 字典中有相同的键值对,不做任何改变;没有才添加
print(dic) dic.setdefault('name','小三') # 不做修改
print(dic)

 

2、删:

①、pop方法:

dic = {'name': '小二','age':13, 'hobby':'篮球'} dic.pop('name') print(dic) print(dic.pop('name')) # 有返回值,按键去删除
print(dic.pop('weight', '没有此键')) # 可以设置随意返回值,用pop删除一个不知道有没有的键时,
print(dic.pop('weight',None))        # 加一个None(返回值),以防没有这个键而报错

②、popitem方法:

dic = {'name': '小二','age':13, 'hobby':'篮球'} print(dic.popitem())  # 随机删除,有返回值,返回的元组里面就是删除的键

③、clear方法:

dic = {'name': '小二','age':13, 'hobby':'篮球'} dic.clear() # 清空字典

④、del方法:

dic = {'name': '小二','age':13, 'hobby':'篮球'} del dic['age'] print(dic) del dic  # 删除整个字典
print(dic)

 

3、改:

①、直接改:

dic1 = {'name': '小王','age':13, 'hobby':'篮球'} dic['age'] = 12 print(dic)

②、update方法:

dic = {'name': '小二', 'from':'American','weight':110} dic1 = {'name': '小王','age':13, 'hobby':'篮球'} dic1.update(dic) # 把dic的覆盖添加到dic1,有的覆盖,没有的添加 print(dic) print(dic1)

第五天学习内容

 

4、查:

①、直接打印键值对:

dic = {'name': '小二', 'from':'American','weight':110} print(dic.keys()) # 打印键 print(dic.values()) # 打印值 print(dic.items()) # 打印键值对

第五天学习内容

②、分别打印键值:

dic = {'name': '小二', 'from':'American','weight':110} for i in dic: # 打印字典所有的键 print(i) for i in dic.keys(): # 打印字典所有的的键 print(i) for i in dic.values(): # 打印字典所有的值 print(i)

③、同时打印键值对:

dic = {'name': '小二', 'from':'American','weight':110} for k,v in dic.items():  # 打印键值对#
    print(k,v)

第五天学习内容

④、通过键找值:

dic = {'name': '小二', 'from':'American','weight':110} v1 = dic['name'] print(v1) # 有这个键的话就输出它的值 v2 = dic['name1'] print(v2) # 没有这个键的话就会报错

get方法:

print(dic.get('name')) # 有的话就输出 print(dic.get('name1')) # 没有的话就输出None,不会报错 print(dic.get('name1','没有该值')) # 可以随意设定输出值

第五天学习内容

 

 二、字典的嵌套及一系列操作:

dic = {'name': ['xiaoer', 'laowang', 'zhangsan'],
       'qingkuang':{
        'name': 'wangwu',
        'age': 12,
        'height':160,
                     },
       'hobby':'打球'
      }
# 1、修改字典的值:
dic['hobby'] = '游戏' print(dic) # 2、在字典中增加值
dic['name'].append('sb') print(dic) # 3、将'laowang'全部大写
dic['name'][1] = dic['name'][1].upper() print(dic) # 4、在‘qingkuang'中添加一个键值对
dic['qingkuang']['from'] = 'china' print(dic)

1、将输入的字符串的数字个数打印出来:

info = input('>>>') for i in info: if i.isalpha(): info = info.replace(i,' ') l = info.split() print(len(l))

 三、内容总结:

第五天学习内容

 四、作业讲解:根据商品序号选择商品

# li = ['手机', '电脑', '鼠标垫', '游艇']
# 1、页面显示序号+商品名称
# 2、用户输入选择的序号,打印出商品
# 3、序号有误,重新输入
# 3、输入 Q 或者 q 退出
while 1: li = ['手机', '电脑', '鼠标垫', '游艇'] for i in li: print('{}\t\t{}'.format(li.index(i)+1,i)) # print(li.index(i)+1,i) 格式优化 num_of_choice = input('请输入商品序号/输入Q或者q退出:') if num_of_choice.isdigit(): num_of_choice = int(num_of_choice) if num_of_choice > 0 and num_of_choice <= len(li): print(li[num_of_choice]) else:print('请输入有效数字:') elif num_of_choice.upper() == 'Q':break else:print('请输入数字')

 

 

---恢复内容结束---