1.字典定义:

  字典和列表类似 只是字典标示符用的是字符而列表用的是0开始的数字,字典中每个元素对应一个值 这个元素叫做键(key)键值不能重复 value(值)可以重复

2.字典格式:

格式一:

[Name]={‘key1’:’value1’,’key2’:’value2’,………}

例:

>>>dictionary={'key1':'value1','key2':'value2','key3':'value3'}

>>>print (dictionary)

{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}

格式二:

[Name]={}

Name[‘key1’]=’value1’

Name[‘key2’]=’value2’

………

例:

>>> dictionary={}

>>> dictionary['key1']='value1'

>>> dictionary['key2']='value2'

>>> dictionary['key3']='value3'

>>> print (dictionary)

{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}

三、字典的方法

dict.keys() //查看字典中的键

        >>> dictionary.keys()
['key3', 'key2', 'key1']

dict.get() //获取字典中指定键的值

        >>> dictionary={'key1':'value1','key2':'value2','key3':'value3'}
>>> dictionary.get("key1")
value1

dict.values()  //查看字典中所有的值

        >>> dictionary.values()
['value3', 'value2', 'value1']

dict.items() //获取字典中所有键、值 以列表的方式输出 其中对应的键、值通过元组进行组合

        #-*- coding:utf-8 -*-
#/usr/bin/env python
>>> dictionary={'key1':'value1','key2':'value2','key3':'value3'}
>>> dictionary.items()
[('key3', 'value3'), ('key2', 'value2'), ('key1', 'value1')]

dict.has_key //判断key是否存在如果存在则返回True 否则则返回False

        >>> dictionary={'key1':'value1','key2':'value2','key3':'value3'}
>>> dictionary.has_key('key1')
True
>>> dictionary.has_key('alan')
False

dict.pop('key') //删除并返回key对应的值

        >>> dictionary={'key1':'value1','key2':'value2','key3':'value3','key4':'value4'}
>>> dictionary.pop('key1')
'value1'
>>> dictionary
{'key3': 'value3', 'key2': 'value2', 'key4': 'value4'}

dict.popitem() //随机删除并以元组的方式返回字典中的任意一个键值对

        >>> dictionary={'key1':'value1','key2':'value2','key3':'value3','key4':'value5'}
>>> dictionary.popitem()
('key3', 'value3')
>>> dictionary
{'key2': 'value2', 'key1': 'value1', 'key4': 'value5'}

dict['key'] = value //如果不存在键值则创建 如果存在则覆盖

        >>> dictionary={'key1':'value1','key2':'value2','key3':'value3','key4':'value4'}
>>> dictionary['key1']='alan'
>>> dictionary
{'key3': 'value3', 'key2': 'value2', 'key1': 'alan', 'key4': 'value4'}

dict.copy() //复制字典 在内存中重新开辟一块空间

        >>> dictionary={'key2': 'value2', 'key4': 'value4'}
>>> test = dictionary.copy()
>>> test
{'key2': 'value2', 'key4': 'value4'}
#查看test对应的内存地址
>>> id(test)
45940000
#查看dictionary对应的内存地址
>>> id(dictionary)
45859440

注:
            如果直接赋值 test = dictionary 那么他们将共享同一份内存数据

            >>> test = dictionary
>>> id(test)
45859440
>>> id(dictionary)
45859440

Python 基础【第六篇】字典的更多相关文章

  1. python基础-第六篇-6.2模块

    python之强大,就是因为它其提供的模块全面,模块的知识点不仅多,而且零散---一个字!错综复杂 没办法,二八原则抓重点咯!只要抓住那些以后常用开发的方法就可以了,哪些是常用的?往下看--找答案~ ...

  2. Python学习第六篇——字典中的键和值

    favorite_language ={ "jen":"python", "sarah":"c", "edwa ...

  3. python基础-第六篇-6.1生成器与迭代器

    迭代器 特点: 访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容 不能随机访问集合中的某个值 ,只能从头到尾依次访问 访问到一半时不能往回退 便于循环比较大的数据集合,节省 ...

  4. python基础-第六篇-6.4模块混战

    我们之前接触多的编程方式就是函数式编程,而且喜欢就一个文件里写完所有的程序代码,这样做在前期感觉还不错,不过一旦你的程序变复杂,在易读性和排错方面就感觉好吃力,功能界限不明显,那今天我们就来讲讲怎么用 ...

  5. python基础一数据类型之字典

    摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...

  6. Python基础知识(六)------小数据池,集合,深浅拷贝

    Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: ​ 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : ​ 一个文 ...

  7. NHibernate 组件基础 (第六篇)

    NHibernate 组件基础 (第六篇) 一.组件简介 组件(Component)可以理解为被一个对象所包含的对象而持久化,而并非一个实体.简单说来,假如数据库有FirstName,LastName ...

  8. Day2 - Python基础2 列表、字典、集合

    Python之路,Day2 - Python基础2   本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...

  9. python基础之列表、字典、元祖等 (二)

    一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...

  10. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

随机推荐

  1. bzoj 1835 [ZJOI2010]base 基站选址(DP+线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1835 [题意] 有n个村庄,每个村庄位于d[i],要求建立不多于k个基站,在第i个村庄 ...

  2. bzoj 1176 Mokia(CDQ分治,BIT)

    [题目链接]  http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=96974 [题意] 定义查询操作与修改操作:1 x y z 为 ...

  3. 【暑假】[数学]UVa 1262 Password

    UVa 1262  Password 题目: Password   Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld ...

  4. codeforce 604B More Cowbell

    题意:n个球,分成k堆.问堆的最大值的最小. #include <bits/stdc++.h> typedef long long ll; using namespace std; int ...

  5. 【zoj3254】Secret Code

    题意: 给出a.p.d.m 求a^x=d(mod p) 0<=x<=m 的解的个数 题解: 今天一整天的时间大部分都在调这题Orz BSGS什么的还是太不熟了 我们可以用BSGS拓展版求出 ...

  6. ALM11用例测试类型

    默认一般都是选择的是manual

  7. 转载 基于Selenium WebDriver的Web应用自动化测试

    转载原地址:  https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中, ...

  8. 转载LINQ TO Entity 在数据库发生更改时更新实体数据模型 .edmx 文件

    转载原出处:http://blog.csdn.net/litao2/article/details/8629335 在“模型浏览器”中,右击 .edmx 文件,然后选择“从数据库更新模型”. 模型更新 ...

  9. emWin -- 模拟器系列1 - 如何建立模拟器开发环境

    面对如此强大的emWin,大家是否都有跃跃欲试的冲动呢?但是没有硬件可以调试的童鞋,难道只能望洋兴叹?非也.非也.Segger公司早就考虑到了.Segger推出模拟器的目的不仅仅是为了解决没有硬件的烦 ...

  10. RocketMQ入门(3)拉取消息

    转自:http://www.changeself.net/archives/rocketmq入门(3)拉取消息.html RocketMQ入门(3)拉取消息 RocketMQ不止可以直接推送消息,在消 ...