1、python3字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})

dict1 = {key1:value1,key2:value2}

字典的键必须是唯一的 ,但值则不必;值可以去任何数据类型,但键必须是不可变的,如字符串,数字或元组。

>>> dict1 = {'name':'python','age':'','character':'scripts'}

2、访问字典

使用key访问对应的值,如果key不存在则报错

>>> dict1 = {'name':'python','age':'','character':'scripts'}
>>> print(dict1['name'])
python
>>> print(dict1['age'])
20
>>> print(dict1['age1'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age1

3、修改、删除字典元素

将指定的key赋值即可修改字典元素值,能删除单个的元素也能清空字典

>>> dict2 = {'key1':123,'key2':'dictionary'}
>>> dict2['key1']=888 #修改对应的key的值
>>> print(dict2)
{'key2': 'dictionary', 'key1': 888}
>>> dict2['key3']='python3' #给字典添加元素
>>> print(dict2)
{'key2': 'dictionary', 'key1': 888, 'key3': 'python3'} >>> del dict2['key1'] #删除键
>>> print(dict2)
{'key2': 'dictionary', 'key3': 'python3'}
>>> dict2.clear() #清空字典内容
>>> dict2
{}
>>> del dict2 #删除字典
>>> dict2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'dict2' is not defined #字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
#不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
>>> dict = {1:'a',2:'b',1:'c'}
>>> print(dict)
{1: 'c', 2: 'b'}
#键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
>>> dict = {1:'a','abc':'python',('tuple','values'):'abc',['list1']:'listname'}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

4、字典内置函数

>>> dict1 = {1:'a',2:'b',3:'c',4:'d'}
>>> len(dict1) #计算字段元素个数
4
>>> str(dict1) #输出字典,以可以打印的字符串表示
"{1: 'a', 2: 'b', 3: 'c', 4: 'd'}"
>>> type(dict1) #返回变量类型
<class 'dict'>

5、python3字典方法

>>> dict = {'a':1,'b':2}
>>> dict.clear() #清除字典内的所有元素
>>> dict
{} >>> dict = {'a':1,'b':{'c':22,'d':33}}
>>> dict1 = dict.copy() #返回字典的浅复制,即只拷贝第一层键对应值
>>> dict1
{'b': {'d': 33, 'c': 22}, 'a': 1} >>> dict1.fromkeys(range(5),'') #创建一个新字典,迭代序列做字典的键,value为字典的初始值,此处为"000"
{0: '', 1: '', 2: '', 3: '', 4: ''} >>> dict1 = {'k1':'v1','k2':'v2'}
>>> print(dict1.get('k3')) #get查找key是否存在,如果不存在则用None,或指定值
None
>>> print(dict1.get('k3','python'))
python
>>> 'k1' in dict1 #判断键是否存在,存在返回true,否则返回false
True
>>> 'k3' in dict1
False >>> dic = {'k1':'v1','k2':'v2'}
>>> print(dic.items()) #以列表返回可遍历的(键, 值) 元组数组
dict_items([('k1', 'v1'), ('k2', 'v2')])
>>> for k,v in dic.items():  #迭代循环取值
... print(k,v)
...
k1 v1
k2 v2
>>> print(dic.keys())   #以列表返回字典的所有键
dict_keys(['k1', 'k2'])
>>> print(dic.values()) #以列表返回字典的所有值
dict_values(['v1', 'v2']) >>> dic.setdefault('k3','v3') #和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default或指定
'v3'
>>> dic
{'k1': 'v1', 'k3': 'v3', 'k2': 'v2'}
>>> dic1 = {1:22,2:33,3:44}
>>> dic.update(dic1) #把字典dic1的键/值对更新到dic里
>>> dic
{1: 22, 2: 33, 3: 44, 'k3': 'v3', 'k1': 'v1', 'k2': 'v2'}
>>> dic.pop(1) #删除字典给定的键值,返回值为删除的值,key必须指定,如删除键不存在则返回default值,可指定。
22
>>> dic
{2: 33, 3: 44, 'k3': 'v3', 'k1': 'v1', 'k2': 'v2'}
>>> dic.pop(1,'hehe')
'hehe'
>>> dic.popitem() #随机删除字典中的一对键和值(一般删除最前的对)
(2, 33)
>>> dic.popitem()
(3, 44)

6、小实例

根据奇数和偶数生成字典元素
dct1 = {}
for i in range(20):
if i%2 == 1:
if 'odd' in dct1.keys():
dct1['odd'].append(i)
else:
dct1['odd'] = [i,]
else:
if 'even' in dct1.keys():
dct1['even'].append(i)
else:
dct1['even'] = [i,]
print(dct1) 输出结果:
{'odd': [1, 3, 5, 7, 9, 11, 13, 15, 17, 19], 'even': [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]} 登陆购物车:
 #!/usr/bin/env python
#coding:utf8
#file:Administrator
#time:20170926
import sys,os
#统计三次用户错误锁定
count = 0
#用户密码字典
name_pass = {'user1':'','user2':'','user3':''}
for i in range(10):
name_input = input('请输入用户名:')
if name_input in name_pass.keys(): #判断用户存在否
passwd_input = input('请输入密码:')
if passwd_input == name_pass[name_input]: #判断对应用户密码
print('恭喜登陆成功!')
break
else:
if count > 1:
print('3次输入错误,您账号已锁定')
exit()
print('{}用户名不存在或密码错误,请重新输入!'.format(name_input))
count += 1
else:
print('{}用户不存在'.format(name_input))
continue
#商品列表
shop_list = [
['iphone7',6500],
['iphone6',4500],
['金立s10',3400],
['华为r79',2888],
['魅族NOTE5',1888],
['opppR9',3600],
]
money = eval(input('请输入你的预购金额:'))
shop_out = [] #购物车
all_kaixiao = 0 #统计值
while True:
print('++++++++++商品清单++++++++++++++')
for num,i in enumerate(shop_list,1):
if isinstance(i,list):
shop_li = i[0]+"\t"+str(i[1])
print(num,shop_li)
else:
print(i)
print('q:退出\np:打印清单')
shop_name = input('请输入要购买的商品编号:')
shop_name = str(shop_name) if shop_name == 'q':
exit()
elif shop_name == 'p': #打印购物明细
print('------购物明细------')
for number,i in enumerate(shop_out,1):
if isinstance(i,list):
hehe = i[0]+":"+str(i[1])
print(number,hehe)
else:
print(number,i)
print('---总计金额:%s---'%(all_kaixiao))
continue #跳出循环,不然会输出非法信息
if shop_name.isdigit() == 1: #判断是否为数字
shop_name = int(shop_name)
else:
print('您的输入非法,请重新输入')
continue
unm1 = int(len(shop_list))
if shop_name not in range(1,unm1+1): #判断输入商品编号是否在序列中
print('输入有误,请重新输入!')
continue
else:
price = int(shop_list[shop_name - 1][1]) #商品单价
if money < price:
print('您的金额不足,无法购买')
continue
money = money - price # 剩余金额
out = shop_list[shop_name - 1][:] # 购买商品信息
shop_out.append(out[:]) # 加入购物车
all_kaixiao +=price #汇总消费
print('您购买的商品是:{}单价:{}元'.format(*out))
print('您还可以消费:{}'.format(money))

python之dictionary的更多相关文章

  1. Python 字典(Dictionary)操作详解

    Python 字典(Dictionary)的详细操作方法. Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字 ...

  2. Python 字典(Dictionary) get()方法

    描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: dict.get(key, default=None) 参数 ...

  3. Python 字典(Dictionary) setdefault()方法

    描述 Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值. 语法 setdefault()方法语法: ...

  4. Python 字典(Dictionary) has_key()方法

    描述 Python 字典(Dictionary) has_key() 函数用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false. 语法 has_key()方法语法:dic ...

  5. Python 字典(Dictionary) values()方法

    描述 Python 字典(Dictionary) values() 函数以列表返回字典中的所有值. 语法 values()方法语法: dict.values() 参数 NA. 返回值 返回字典中的所有 ...

  6. Python 字典(Dictionary) keys()方法

    Python 字典(Dictionary) keys() 函数以列表返回一个字典所有的键. 语法 keys()方法语法: dict.keys() 参数 NA. 返回值 返回一个字典所有的键. 实例 以 ...

  7. Python字典(Dictionary)update()方法

    原文连接:https://www.runoob.com/python/att-dictionary-update.html Python字典(dictionary)update()函数把字典dict2 ...

  8. Python 字典(Dictionary) items()方法

    描述 Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组.高佣联盟 www.cgewang.com 语法 items()方法语法: dict.it ...

  9. Python 字典(Dictionary) copy()方法

    描述 Python 字典(Dictionary) copy() 函数返回一个字典的浅复制.高佣联盟 www.cgewang.com 语法 copy()方法语法: dict.copy() 参数 NA. ...

  10. Python 字典(Dictionary) clear()方法

    Python 字典(Dictionary) clear()方法 描述 Python 字典(Dictionary) clear() 函数用于删除字典内所有元素.高佣联盟 www.cgewang.com ...

随机推荐

  1. 跳转Activity两种方法

    摘要:假设从A界面开启另外一个B界面根据是否需要返回数据分为两种方式 一.无需返回数据方式 在A界面中调用startActivity方法进行直接跳转即可 二.需要返回数据方式 1.在A界面中调用sta ...

  2. 使用WITH AS 的ROW_NUMBER分页

    WITH tempTable AS(     --复杂查询语句) SELECT * FROM (select ROW_NUMBER()  Over( order by xxx) as rowNum, ...

  3. MySQL高可用基础之keepalived+双主复制【转】

    环境:MySQL-VIP:192.168.1.3MySQL-master1:192.168.1.1MySQL-master2:192.168.1.2 OS版本:CentOS release 6.4 ( ...

  4. MongoDB知识点拾遗梳理

    MongoDB数据库安装: >apt-get install mongodb 0.MongoDB状态查看.启动.停止       >/etc/init.d/mongodb status或s ...

  5. Confluence 6 自定义默认空间内容

    中文标题[自定义默认空间内容] Confluence 管理员 可以编辑用于创建主页和新站点的模板.默认的内容将会在新空间创建后的主页上显示出来.这个与站点空间,个人空间和空间蓝图的模板是不同的. 模板 ...

  6. php内置函数分析之str_pad()

    PHP_FUNCTION(str_pad) { /* Input arguments */ zend_string *input; /* Input string 输入字符串*/ zend_long ...

  7. AWT控件称为重量级控件

    AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口. AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的 ...

  8. [BZOJ3174]拯救小矮人

    Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人, ...

  9. [洛谷P1369]矩形

    题目大意:有$n(n\leqslant300)$个点,每个点坐标范围在$[1\sim100]$,求一个矩阵,使得边界上的点最多. 题解:做一遍二维前缀和,直接暴力枚举两个顶点 卡点:无 C++ Cod ...

  10. CMDB资产管理系统开发【day26】:批准资产入库

    刚才都是一条像内存,硬盘,网卡.多条的话如何操作 只有一条数据 下面的是有多条数据的 硬盘必须字段的验证 def __create_disk_component(self): disk_info = ...