'''
dict,唯一一个映射数据类型
数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:元组,bool int str(对str的任何改变都是形成了新的str,对原来的str没有改变)
可变数据类型:list,dict,set
dict key 必须是不可变数据类型,可哈希,元祖bool,int,str
value: 任意数据类型;
dict 优点: 二分查找去查询
存储大量的关系型数据
特点:无序的
字典的增:
dict1={}
dict1['high'] = 185 没有键值对,添加
dict1['high']=160 如果有键值对,则值覆盖
dict1.setdefault('weight',150) 有键值对,不做任何改变;没有才添加
删除:
print(dic1.pop('age')) 有返回值,按键去删除
print(dic1.pop('age',None)) 没有这个键的话,则返回None
print(dic1)
dic1.popitem() 将最后一个删除
print(dict1)
del删除字典;clear()清空字典表
改:
dic2.update(dic1) 将dic1的键值对添加到dic2中
查:
dict1.keys()字典的键 dict1.values()字典的值 .items()里面是元组,元祖里面是键值
当什么都不写时,打印输出的是键
面试题:
a=1 b=2 用一行代码转换a,b的值
a,b = b,a
print(a,b)
字典赋值:
for k,v in dic1.items(aa668668@):
print(k,v)
同样得到键值对,首选get方法!!!
v1 = dic1['name'] 键值不存在可能会报错
v2 = dic1.get('name1','没有这个键') 键值不存在时不会报错,会返回自定义的信息或者None
dict嵌套
在字典的嵌套字典中添加键值对
dic = {
'name':['alex','wusir','taibai'],
'py9':{
'time':'1213',
'learn_money':19800,
'addr':'CBD',
},
'age':21
}
练习题1:

# 字典练习题
# 1、元素分类
#有如下值li= [11,22,33,44,55,66,77,88,99,90],
# 将所有大于66的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
#即:['k1': 大于66的所有值列表, 'k2': 小于66的所有值列表]

li= [11,22,33,44,55,66,77,88,99,90]
dic = {}
# 大于66的所有值列表
li_more = []
# 小于66的所有值列表
li_less = []
for i in li:
if i == 66:
continue
elif i>66:
li_more.append(i)
else:
li_less.append(i)
dic['k1'] = li_more
dic['k2'] = li_less
练习题2:
 输出商品列表,用户输入序号,显示用户选中的商品
    商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:1:页面显示 序号 + 商品名称,如:
          1 手机
           2 电脑
              …
     2: 用户输入选择的商品序号,然后打印商品名称
  3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。

li = ["手机", "电脑", '鼠标垫', '游艇']
while 1:
for i in li:
print('{}\t\t{}'.format(li.index(i)+1,i))
# break
buy = input("输入自己想要的序号,输入q或Q退出:\n")
if buy.isdigit():
# pass
if int(buy) in range(1,5):
print("想要的是{0}:{1}".format(int(buy),li[int(buy)-1]))
else:
print("请输入指 定商品范围的数字!")
elif buy.upper() == 'Q':
break
else:
print("请输入数字!")

总结:

1.format的格式化操作;

2.通过列表.index来取索引下标;

3.isdigit()的使用;

4..upper的使用
---------------------

Python字典操作及课后练习的更多相关文章

  1. python 字典操作提取key,value

    python 字典操作提取key,value dictionaryName[key] = value 1.为字典增加一项  2.访问字典中的值  3.删除字典中的一项  4.遍历字典  5.字典遍历的 ...

  2. Python字典操作大全

    //2018.11.6 Python字典操作 1.对于python编程里面字典的定义有以下几种方法: >>> a = dict(one=1, two=2, three=3) > ...

  3. python字典操作

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: 代码如下: dict ...

  4. python字典操作和内置方法

    一 字典基本介绍 python中只有字典是映射结构,通过key取值,并且key是不可变数据类型,而value可以是任意数据类型. 字典通过一个花括号,里面存放key:value的数据结构来定义.理论上 ...

  5. python 字典操作

    字典的常用操作: clear 功能:清空字典 dict_li = {'users':'swht','age':'18',} dict_li.clear() 返回结果:dict_li {} copy 功 ...

  6. python字典操作用法总结

    基本语法: dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'} 技巧: 字典中包含列表:dict={'yangrong':['23',' ...

  7. 第3.5节 丰富的Python字典操作

    一. 基本概念 Python提供一种通过名称来访问其各个值的数据结构,这种数据结构称为映射(mapping).字典(dict)是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下, ...

  8. Python——字典操作

    一.取出字典中所有的key-value student={'name':'xiaoming','age':11,'school':'tsinghua'} for key,value in studen ...

  9. python字典操作+文件操作+函数

    师从百测besttest今天老牛教了些函数调用的知识,布置了个作业如下: # 1.写一个商品管理的小程序# 2.商品存在文件里面# 1.添加商品# 输入产品名称.颜色.价格# 要校验商品是否存在,价格 ...

随机推荐

  1. SyntaxError: missing ] after element list

    在前端页面js报错,找了很久没找到原因. 后来发现是后台向前端输出json字符串,而前端接收是html格式,需要将后台json字符串改成正常字符串就可以输出,或者通过ajax的方式接收json字符串.

  2. 【SpringBoot】 一种解决接口返回慢的方式

    前言 使用springboot开发后台代码的时候,很核心的一个功能是为前端提供接口,那么很可能你会遇到如下问题: 1. 接口里面调用的service层是第三方库或者第三方后台程序,导致访问很慢. 2. ...

  3. python赞乎--学习开发

  4. bat 需注意

    1. 注释 :: 注释内容,下一行不能是空行,必须是语句否则报错. goto blabla rem 注释内容,则无上述限制. goto blabla 2. if rem 1. 要注意左括号前的空格以及 ...

  5. 利用print函数模拟打印进度条

    import time , , ): time.sleep(0.1) num = i // 2 # 地板除,即取不大于/后的最小整数(3//2 = 1, 9//4 = 2, -7//2 = -4) s ...

  6. DOM操作 、js获取id的内容 和修改原来的内容(innerHTML)

    js获取id的内容(getElementById) 和修改原来的内容(innerHTML) 1.通过ID获取元素 学过HTML/CSS样式,都知道,网页由标签将信息组织起来,而标签的id属性值是唯一的 ...

  7. Cocos2d Box2D之浮动刚体

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. b2_kinematicBody 运动学物体在模拟环境中根据自身的速度进行移动.运动学物体自身不受力的作用.虽然用户可以手动移动它,但是通 ...

  8. Codeforces 498A Crazy Town

    C. Crazy Town time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  9. poj3216 Prime Path(BFS)

    题目传送门  Prime Path The ministers of the cabinet were quite upset by the message from the Chief of Sec ...

  10. 常用Message Queue对比

    目前业界有很多MQ产品,我们作如下对比: RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量 ...