'''
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. 2019 牛客暑期多校 第八场 A All-one Matrices (单调栈+前缀和)

    题目:https://ac.nowcoder.com/acm/contest/888/A 题意:找全1矩阵的个数,并且这个全1矩阵不被其他全1矩阵包含 思路:这里引用付队说的话 -> { 这类问 ...

  2. 8 November in 614

    我开始看心灵鸡汤了-- 每当在书中读及那些卑微的努力,都觉得感动且受震撼.也许每个人在发出属于自己的光芒之前,都经历了无数的煎熬,漫长的黑夜,无尽的孤独,甚至不断的嘲讽和否定,但好在那些踮脚的少年,最 ...

  3. STM32 入门之 GPIO

    入手STM32有一段时间了,感觉刚入门时很难,无处下手,现在学到了点皮毛,写出来和大家分享一下. 首先,什么叫GPIO?这个问题,答案是我也不知道!至少目前我没有必要知道,我只要知道他其实就是51单片 ...

  4. SQL 关键字的使用顺序

    1.查询中用到的关键词主要包含六个,并且他们的顺序依次为 select --> from --> where --> group by --> having --> or ...

  5. php关键字static使用

    php中static关键字使用: 情景1:静态变量 使用static关键字定义静态变量 静态变量:只存在于函数作用域内,也就是说,静态变量只存活在栈中.一般的函数内变量在函数结束后会释放,比如局部变量 ...

  6. ceph安装过程

    创建群集[2019-03-20 18:35:04,232][ceph_deploy.conf][DEBUG ] found configuration file at: /home/sceph/.ce ...

  7. jmeter添加自定义扩展函数之DoubleSum

    1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这 ...

  8. 用threading 解决 gunicorn worker timeout

    产生worker timeout 的背景 while 1: ..... time.sleep(1) gunicorn运行起来,只等待了30s,就卡住了,没报任何异常或err,查了gunicorn 官方 ...

  9. vue-router 传递参数的几种方式

    本文转载自:https://blog.csdn.net/crazywoniu/article/details/80942642 vue-router传递参数分为两大类 编程式的导航 router.pu ...

  10. Java前端控制器模式~

    前端控制器设计模式用于提供集中式请求处理机制,以便所有请求将由单个处理程序处理.此处理程序可以执行请求的身份验证/授权/记录或跟踪,然后将请求传递到相应的处理程序. 以下是这种类型的设计模式的实体. ...