一、字典

1、字典的特点:

        一系列键-值对(key-value),字典用放在花括号{ }中的一系列键值对表示;

        字典中有多个元素时需要用逗号,隔开;

        key不能重复;

        字典是无序的。

 字典的优点:字典取值方便,速度快,比列表取值快,不需要像列表一样一个一个找。

2、字典的方法:

已存在的字典:
info = {
"name":"andy",
"color":"red",
"city":"beijing"
}

(1)增加

方法有二:

【1】向字典info中增加一个新的key:height

info['height']=160

【2】向字典info中增加一个新的key:sex

info.setdefault('sex','male')

如上两种方法在新增不存在的键时没有区别,但要是增加已存在的键,则不同:

若使用方法【1】可修改原存在的键对应的值;

若使用方法【2】则不会修改原存在的键对应的值;

(2)删除

方法有二:

【1】pop方法

info.pop('sex')

【2】del方法

del info['sex']

随机删除一个元素方法不常用,info.popitem()

(3)修改

同新增的【1】方法

info['height']=160

(4)取值

【1】输入键取对应的值

print(info['color'])

【2】使用get取值

print(info.get('color'))

如上两种方法都可以取已存在的key,若取字典里不存在的key,则不同:

【1】会报错

【2】返回None    (使用此方法可设置取不到值时,传入默认值,方法为info.get('color','red'))

>获取字典里所有的key

print(info.keys())

>获取字典里所有的value

print(info.values())

(5)清空

info.clear()

(6)update与list中的extend类似,如下为将stu字典加入到info字典中

stu ={
'stu_id':'',
'stu_no':'no.1'
}
info.update(stu)
print(info)

3、多层字典取值

stu_info  = {
'liudonghai':{
'house':['三环','四环','五环'],
'car':{
'china':['byd','五菱宏光','Hongqi'],
'jap':['丰田','本田'],
'Germany':{
'ben-z':2,
'bmw':3,
'audi':5
}
}
}
} #1、刘东海又买了一辆宝马
stu_info['liudonghai']['car']['Germany']['bmw']+=1
print(stu_info['liudonghai']['car']['Germany']['bmw'])
#2、刘东海不要byd和红旗了
stu_info['liudonghai']['car']['china'].remove('byd')
print(stu_info['liudonghai']['car']['china'])
stu_info['liudonghai']['car']['china'].pop(-1)
print(stu_info)

4、循环字典:

accounts = {
"liuzhao":"",
"liudonghai":"",
"zhaowenming":"",
"xiaoming":""
}
for k in accounts: #直接循环字典每次循环的时候取到的是字典的key
print("%s => %s"%(k,accounts[k])) #同时取到key和value--方法1
for k,v in accounts.items(): #同时取到key和value--方法2,没有上面的方法1效率高
print("%s => %s"%(k,v)) l = ['liuzhao', 'liudonghai', 'zhaowenming', 'xiaoming', 'users']
s = '34125345235355ssssss'
for i in l: #循环list,循环list里的每一个元素
print(i) for j in s: #循环字符串,循环字符串里的每一个元素
print(j) print(list(range(5)))
print(list(range(1,5)))

Python字典 day2的更多相关文章

  1. Python基础-day2

    1.Python模块python 中导入模块使用import语法格式:import module_name示例1: 导入os模块system('dir')列出当前目录下的所有文件 # _*_ codi ...

  2. python s12 day2

    python s12 day2   入门知识拾遗 http://www.cnblogs.com/wupeiqi/articles/4906230.html 基本数据类型 注:查看对象相关成员 var, ...

  3. python学习day2

    一.模块初识 python模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用 ...

  4. Python字典和集合

    Python字典操作与遍历: 1.http://www.cnblogs.com/rubylouvre/archive/2011/06/19/2084739.html 2.http://5iqiong. ...

  5. python 字典排序 关于sort()、reversed()、sorted()

    一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...

  6. python字典中的元素类型

    python字典默认的是string item={"browser " : 'webdriver.irefox()', 'url' : 'http://xxx.com'} 如果这样 ...

  7. python字典copy()方法

    python 字典的copy()方法表面看就是深copy啊,明显独立 d = {'a':1, 'b':2} c = d.copy() print('d=%s c=%s' % (d, c)) Code1 ...

  8. python 字典实现类似c的switch case

    #python 字典实现类似c的switch def print_hi(): print('hi') def print_hello(): print('hello') def print_goodb ...

  9. python字典的常用操作方法

    Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串.数字.元组等其他容器模型.本文章主要介绍Python中字典(Dict)的详解操作方法,包含创建.访问.删除.其它操作等,需 ...

随机推荐

  1. [转]数据库查询 sysobjects

    sysobjects sysobjects是系统自建的表,里面存储了在数据库内创建的每个对象(约束.默认值.日志.规则.存储过程等),各在表中占一行.只有在 tempdb 内,每个临时对象才在该表中占 ...

  2. MSSQL的表备份成INSERT脚本的存储过程

    USE [SupplyChain]GO/****** Object: StoredProcedure [dbo].[ExpData] Script Date: 2015-12-18 10:23:08 ...

  3. Win8.1更新之后没法启动,怎样修复?

    1.问题 今天开笔记本的时候,发现电脑没法启动.屏幕显示"Recovery Your PC needs to be repaired...". 详细内容见下图: 2.解决的方法 2 ...

  4. tlplayer 全部平台版本号支持水印叠加

    tlplayer支持视频渲染前水印叠加.各个系统版本号相同支持. 联系方式:weinyzhou86@gmail.com QQ:514540005 版权全部,禁止转载. 公布自:http://blog. ...

  5. CentOS 安装 MRTG 软件完成后的 403 Forbidden(转载)

    用 yum 安装 MRTG 並设定好之后也把 apache 的 httpd.conf 加上 mrtg 的目录,但 http://server/mrtg 卻一直出現 403 Forbidden.在 ht ...

  6. JavaI/O 系统

    1.JavaI/O 系统概述 A.  输入输出(I/O):指的是计算机与外部世界,或者一个程序与计算机的其余部分之间的接口 B. 流的概念(流:Stream) 流的基本特性:有数据.有方向 2. 流的 ...

  7. css定位、position与float同时使用的情况

    一.css定位 CSS 有三种基本的定位机制:普通流.浮动和绝对定位. 1.普通流:未专门指定的元素都在普通流中定位,position:static/relative;和float:none;也在普通 ...

  8. Springboot+hibernate简单的增删改查

    1.创建好项目之后在配置端口号(也可以不用配置,默认端口8080) #server server.port= server.tomcat.uri-encoding=utf- 2.配置mysql #My ...

  9. 【LOJ#10115,tyvj1473】校门外的树(第3次升级)

    PS:思路来源于Clove_unique的博客,在此万分感谢 这道题可以用树状数组轻松过,然而...树状数组不太熟悉,还是用线段树比较好(虽然代码比较长) [思路分析] [一开始的思路] 最开始的错误 ...

  10. 一个对象toString()方法如果没有被重写,那么默认调用它的父类Object的toString()方法,而Object的toString()方法是打印该对象的hashCode,一般hashCode就是此对象的内存地址

    昨天因为要从JFrame控件获取密码,注意到一个问题,那就是用toString方法得到的不一定是你想要的,如下: jPasswordField是JFrame中的密码输入框,如果用下面的方法是得不到密码 ...