第五天学习内容

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

一、字典相关概念:

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('请输入数字')

 

 

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

posted @ 2019-05-24 13:02  Y字仇杀队  阅读(176)  评论(0编辑  收藏  举报