python数据结构之字典
1、python字典的定义
1、用大括号{},以逗号分隔每个键值对,键与值之间用冒号连接
2、键:需要不可变的数据结构,值可以是任意的数据对象
3、字典是无序的,键在字典中必须是唯一,在字典中取值的方式是以键寻找相对应的的值
a = {}
c = dict()
a
{}
c
{}
b = {'a':'hello','c':'you','b':'how'}
a = [,,]
b = ['a','b','c']
d = dict(zip(a,b))
d
{: 'a', : 'b', : 'c'}
给字典中的项value赋值
a = {:}
a[] =
a
{: }
字典的访问
b
{'a': 'hello', 'c': 'you', 'b': 'how'}
b.get('a')
'hello'
增:
fruits
{'a': 'apple', 'b': 'banana', 'g': 'grape', 'o': 'orange'}
fruits.setdefault('martin',) fruits.setdefault('a','appleaaa')
'apple'
fruits
{'a': 'apple', 'b': 'banana', 'g': 'grape', 'o': 'orange', 'martin': } fruits.update({:})
fruits.update({'a':'appleupdate'})
fruits
{'a': 'appleupdate', 'b': 'banana', 'g': 'grape', 'o': 'orange', 'martin': , : }
) setdefault:参数是key和value,如果key不存在,在添加key:value,如果key存在,什么也不做。
) update:参数是key和value,不管key存不存在,都变成 key:value的形式。 删除(工作中不常用)
fruits
{'a': 'appleupdate', 'b': 'banana', 'g': 'grape', 'o': 'orange', 'martin': , : }
fruits.pop() fruits
{'a': 'appleupdate', 'b': 'banana', 'g': 'grape', 'o': 'orange', 'martin': } 改:
、赋值
、update a
{: , : , : }
a[] =
a
{: , : , : , : }
a[] =
a
{: , : , : , : }
a.update({:})
a
{: , : , : , : } 查
a
{: , : , : , : }
a.get() a[] 两种取值的区别:
当key不存在的时候,get不会报错,
通过[key]方式去取值的时候,会报错
字典的遍历
、for item in _dict:
print itme 、for k,v in a.items():
print k,v a = {:,:,'ss':} for item in a:
print(item) a = {:,:,'ss':} for k,v in a.items():
print(k,v) 当把字典当成序列的时候,指的是key组成的序列

超市购物
#coding:gbk
import sys
food_price = {'apple':5, 'orange': 8, 'banana':3, 'beef':40, 'pork':26, 'cocacola':3} while True:
try:
money = int(input('pls input your money: '))
break
except:
print('your input in not conrrect,pls input a number') shooping_list = [] while True:
print('\n 目前可购买的商品:')
for food,price in food_price.items():
print(food,price) if money < min(food_price.values()):
print('\n sorry,you have not enough money to buy any food\n')
if shooping_list:
print('\n 你已经买了如下商品:\n %s' %shooping_list)
print('\n 你现在有%s,选择一支商品吧' % money) _choice = input('\n pls input your choice:')
choice = _choice.strip() if choice in ['quit','exit','q']:
print('\n 你已经买了如下商品 \n %s' %shooping_list)
sys.exit() if choice not in food_price:
print('\n 你已经买了如下商品\n %s' %shooping_list)
continue price = food_price[choice]
print('\n 你选择的商品:%s的价格:%s' %(choice,price)) if money >= price:
shooping_list.append(choice)
money = money - price
print('\n你的余额是 %s \n' % money)
else:
print('\nsorry,买不起,您剩余:%s$, %s 的价格是 %s $, 真穷!' % (money, choice, price))
python数据结构之字典的更多相关文章
- Python数据结构之三——dict(字典)
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ 知识源于生活.Python也是如此. 提到字典,我首先想到的是数学大师--高斯. 为何想起他呢?这主要是因为高斯算法 ...
- 小白学 Python(13):基础数据结构(字典)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(12):基础数据结构(字典)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 学Python常用数据结构之字典
迄今为止,我们已经为大家介绍了Python中的三种容器型数据类型,但是这些数据类型还不足以帮助我们解决所有的问题.例如,我们要保存一个人的信息,包括姓名.年龄.体重.单位地址.家庭住址.本人手机号.紧 ...
- python数据结构与算法
最近忙着准备各种笔试的东西,主要看什么数据结构啊,算法啦,balahbalah啊,以前一直就没看过这些,就挑了本简单的<啊哈算法>入门,不过里面的数据结构和算法都是用C语言写的,而自己对p ...
- python数据结构之图的实现
python数据结构之图的实现,官方有一篇文章介绍,http://www.python.org/doc/essays/graphs.html 下面简要的介绍下: 比如有这么一张图: A -> B ...
- Python数据结构与算法--List和Dictionaries
Lists 当实现 list 的数据结构的时候Python 的设计者有很多的选择. 每一个选择都有可能影响着 list 操作执行的快慢. 当然他们也试图优化一些不常见的操作. 但是当权衡的时候,它们还 ...
- Python数据结构与算法--算法分析
在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程.算法的效率或复杂度在理论上表示为一个函数.其定义 ...
- Python数据结构之四——set(集合)
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ 经过几天的回顾和学习,我终于把Python 3.x中的基础知识介绍好啦.下面将要继续什么呢?让我想想先~~~嗯,还是 ...
随机推荐
- preprocessing MinMaxScaler
import numpy as npfrom sklearn.preprocessing import MinMaxScalerdataset = np.array([1,2,3,5]).astype ...
- css中如何把鼠标变成手
css中鼠标放上去变成手型怎么设置:其实就是一个属性的问题, css的cursor属性 cursor:pointer; 其实这个属性我也记了很多,到现在都容易拼写错误,不过好在编辑器有提示. defa ...
- ajax 的 promise
$.when().done().fail() $.when($.ajax("test1.html"),$.ajax("test2.html")).done(fu ...
- 线段树和zkw线段树
作者作为一个蒟蒻,也是最近才自学了线段树,不对的地方欢迎大佬们评论,但是不要喷谢谢 好啦,我们就开始说说线段树吧 线段树是个支持区间操作和查询的东东,平时的话还是蛮实用的 下面以最基本的区间加以及查询 ...
- JSTree下的模糊查询算法——树结构数据层次遍历和递归分治地深入应用
A表示区域节点,S表示站点结点 问题描述:现有jstree包含左图中的所有结点信息(包含区域结点和站点结点),需要做到输入站点名称模糊查询,显示查询子树结果如右图 解决策略: 1.先模糊查询所得站点所 ...
- Javascript 模块化指北
前言 随着 Web 技术的蓬勃发展和依赖的基础设施日益完善,前端领域逐渐从浏览器扩展至服务端(Node.js),桌面端(PC.Android.iOS),乃至于物联网设备(IoT),其中 JavaScr ...
- mysql双机热备实现
说明 机器A:(172.16.1.251),机器B:(172.16.1.252) 两台机器都创建数据库web:create database hello default charset utf8; 实 ...
- Gym 100829S_surf 动态规划的优化
题目大意是,非你若干个任务,任务分别对应开始时间.预期收益.持续时间三项指标,让你从中选择一个受益最大的方案(没有开始时间相同的任务). 于是,标准状态转移方程应当为,设DP[K]为选择了前K个任务的 ...
- Altium Designer
抗干扰设计原则: 1.电源线的设计 选择合适的电源 尽量加宽电源线 保证电源线.底线走向和数据传输方向一致 使用抗干扰元器件(磁珠.电源滤波器等) 电源入口添加去耦电容 2.底线的设计 模拟地和数字地 ...
- HDU 3368 Reversi
http://acm.hdu.edu.cn/showproblem.php?pid=3368 题意:模拟黑白棋,下一步黑手最大可以转化多少个白旗 分析:暴力 原先的思路是找到D然后遍历其八个方向,直到 ...