Python字典使用(八)

字典描述:

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

字典的每个键值(key=>value)对用冒号分隔,每对之间用逗号分割,整个字典包括花括号在内,如下所示:

d={key1:value1,key2:value2}

键必须是唯一的,但值不必。

值可以取任何数据类型,但是键是必须不可变的,如字符串、元组或数字。

如:

d = {‘Alex‘:‘aaa‘,‘Wang‘:‘bbb‘}
d1={‘Alex‘:111,‘Wang‘:222}

访问字典的值:

d = {‘Alex‘:‘aaa‘,‘Wang‘:‘bbb‘}
#d1={‘Alex‘:111,‘Wang‘:222}

print(d.keys())  #读取字典所有键
print(d.values()) #读取字典所有值
print(‘d["Alex"]: ‘,d[‘Alex‘])  #读取某一个键的值,
# (习惯:引号使用,当需要使用叠加的引号时,注意不要都使用同一种引号。比如全部单引号或者全部双引号,那样会报错。) 比如:print(‘d[Alex]: ‘,d[‘Alex‘])
print("d[‘Alex1‘]: ",d[‘Alex1‘]) #读取不到键会报错,信息如下KeyError: ‘Alex1‘

运行结果:

print("d[‘Alex1‘]: ",d[‘Alex1‘])

KeyError: ‘Alex1‘

dict_keys([‘Alex‘, ‘Wang‘])

dict_values([‘aaa‘, ‘bbb‘])

d[‘Alex‘]:  aaa

增加&查找&删除&修改:

d = {
    ‘1‘:‘aaa‘,
     ‘2‘:‘bbb‘,
    ‘3‘:‘ccc‘,
    "4":‘ddd‘,
}
#d1={‘Alex‘:111,‘Wang‘:222}
d[‘5‘]=‘fff‘ #当查询不存在这个键时,就会添加。
print(d)
d[‘1‘]=‘111‘ #当查询存在这个键时,如果值不对就会修改该值。
print(d)

d2=d.get(‘5‘#用get方法,找到不存在只会返回None,不会报错
print(d2)

#del d[‘1‘]#python内置的通用删除方法
#d.pop(‘2‘)#字典里的pop必须指定删除对象
d.popitem()
print(d)

d.clear() #清空字典

print(d)

运行结果:

{‘1‘: ‘aaa‘, ‘2‘: ‘bbb‘, ‘3‘: ‘ccc‘, ‘4‘: ‘ddd‘, ‘5‘: ‘fff‘}

{‘1‘: ‘111‘, ‘2‘: ‘bbb‘, ‘3‘: ‘ccc‘, ‘4‘: ‘ddd‘, ‘5‘: ‘fff‘}

{‘1‘: ‘111‘, ‘2‘: ‘bbb‘, ‘3‘: ‘ccc‘, ‘4‘: ‘ddd‘}

{}

注:

  1. 当查询的键不存在时,会默认添加。
  2. get()查询某个键查询不到时,只会返回None,不会报错。

    多级字典的嵌套及操作:

info ={
    ‘NJ‘:{
        ‘建邺区‘:[‘A‘,‘B‘,‘C‘],
        ‘江宁区‘:[‘AA‘,‘BB‘,‘CC‘],
    },
    ‘SZ‘:{
        ‘福田区‘:[‘1‘,‘2‘,‘3‘],
        ‘高新区‘:[‘11‘,‘22‘,‘33‘],
    }
}
print(info)
info[‘NJ‘][‘建邺区‘][2]=55   #可以修改键里面的值
print(info)
info.setdefault(‘JD‘,{‘SSS‘:[1,2]}) #查不到的可以添加 key-value
print(info)
info.setdefault(‘SZ‘,{‘SSS‘:[1,2]}) #无法修改 键对应的值
print(info)

运行结果:

{‘NJ‘: {‘建邺区‘: [‘A‘, ‘B‘, ‘C‘], ‘江宁区‘: [‘AA‘, ‘BB‘, ‘CC‘]}, ‘SZ‘: {‘福田区‘: [‘1‘, ‘2‘, ‘3‘], ‘高新区‘: [‘11‘, ‘22‘, ‘33‘]}}

{‘NJ‘: {‘建邺区‘: [‘A‘, ‘B‘, 55], ‘江宁区‘: [‘AA‘, ‘BB‘, ‘CC‘]}, ‘SZ‘: {‘福田区‘: [‘1‘, ‘2‘, ‘3‘], ‘高新区‘: [‘11‘, ‘22‘, ‘33‘]}}

{‘NJ‘: {‘建邺区‘: [‘A‘, ‘B‘, 55], ‘江宁区‘: [‘AA‘, ‘BB‘, ‘CC‘]}, ‘SZ‘: {‘福田区‘: [‘1‘, ‘2‘, ‘3‘], ‘高新区‘: [‘11‘, ‘22‘, ‘33‘]}, ‘JD‘: {‘SSS‘: [1, 2]}}

{‘NJ‘: {‘建邺区‘: [‘A‘, ‘B‘, 55], ‘江宁区‘: [‘AA‘, ‘BB‘, ‘CC‘]}, ‘SZ‘: {‘福田区‘: [‘1‘, ‘2‘, ‘3‘], ‘高新区‘: [‘11‘, ‘22‘, ‘33‘]}, ‘JD‘: {‘SSS‘: [1, 2]}}

其他操作:

d = {
    ‘1‘:‘aaa‘,
     ‘2‘:‘bbb‘,
    ‘3‘:‘ccc‘,
    "4":‘ddd‘,
}
a ={
    ‘1‘:‘111‘,
    ‘d‘:123,
    888:999,
}
d.update(a)  #合并列表,并且以被合并的数据为最新的数据更新字典
print(d)
print(d.items()) #转换为列表

运行结果:

{‘1‘: ‘111‘, ‘2‘: ‘bbb‘, ‘3‘: ‘ccc‘, ‘4‘: ‘ddd‘, ‘d‘: 123, 888: 999}

dict_items([(‘1‘, ‘111‘), (‘2‘, ‘bbb‘), (‘3‘, ‘ccc‘), (‘4‘, ‘ddd‘), (‘d‘, 123), (888, 999)])

循环读取字典:

for key in d:
    print(key,d[key])

for item,key in d.items(): #会先把dictionary转成list,数据里大时莫用
    print(item,key)

运行结果:

1 aaa

2 bbb

3 ccc

4 ddd

1 aaa

2 bbb

3 ccc

4 ddd

时间: 2024-10-01 21:46:22

Python字典使用(八)的相关文章

Python基础篇(八)

key words:私有变量,类静态变量,生成器,导入Python模块,r查看模块可以使用的函数,查看帮助信息,启动外部程序,集合,堆,时间模块,random模块,shelve模块,文件读取等 >>> class Rectangle: ...     def __init__(self): ...         self.__width = 0 ...         self.__height = 0 ...     def setSize(self,width,height): .

python 字典有序无序及查找效率,hash表

刚学python的时候认为字典是无序,通过多次插入,如di = {}, 多次di['testkey']='testvalue' 这样测试来证明无序的.后来接触到了字典查找效率这个东西,查了一下,原来字典在python内部是通过哈希表的顺序来排的,做了一些测试,比如di = {1:1,3:3,2:2,4:4,5:5} ,无论怎么改变键值对的顺序,print di 总是会{1: 1, 2: 2, 3: 3, 4: 4, 5: 5}.所以看起来当插入di['key']='value'时,这组键值对有时

Python 字典(Dictionary) get()方法

描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: dict.get(key, default=None) 参数 key -- 字典中要查找的键. default -- 如果指定键的值不存在时,返回该默认值值. 返回值 返回指定键的值,如果值不在字典中返回默认值None. 实例 以下实例展示了 get()函数的使用方法: #!/usr/bin/python dict = {'Name': 'Zara', 'A

Python字典高级使用方法汇总

Python字典高级使用方法汇总 字典(dictionary)是python中的一种非常灵活和强大的数据结构,可以完成很多操作.本文总结了一些除了基本的初始化.赋值.取值之外的常用的字典使用方法. 字典基础参考: [1]:http://www.w3cschool.cc/python/python-dictionary.html [2]:http://www.111cn.net/phper/python/56355.htm [3]:http://skyfen.iteye.com/blog/5675

python字典介绍

Python  字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必. 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组. 一个简单的字典实例: dict = {'Alice': '2341', 'Beth': '9102'

Python 字典(Dictionary) setdefault()方法

描述 Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值. 语法 setdefault()方法语法: dict.setdefault(key, default=None) 参数 key -- 查找的键值. default -- 键不存在时,设置的默认键值;存在则不设置. 返回值 该方法没有任何返回值. 实例 以下实例展示了 setdefault()函数的使用方法: #!/usr/bin/pytho

Python字典增删操作技巧简述

Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些基础应用.比如今天我们为大家介绍的Python字典的相关操作,就是我们在学习过程中需要熟练掌握的技巧. Python字典(Dictionary)是一种映射结构的数据类型,由无序的“键-值对”组成.字典的键必须是不可改变的类型,如:字符串,数字,tuple:值可以为任何Python数据类型. 1.新建Python字典 >>> dict = {} #新建一个空字典 >>>

Python字典方法copy()和deepcopy()的区别

1 from copy import deepcopy # import deepcopy模块 2 d = {} 3 d['name'] = ['black', 'guts'] # d = {'name': ['black', 'guts']} 4 c = d.copy() # c = {'name': ['black', 'guts']} 5 dc = deepcopy(d) # dc = {'name': ['black', 'guts']} 6 d['name'].append('whit

<转>python字典排序 关于sort()、reversed()、sorted()

一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a','have','I'])) #['I', 'have', 'a', 'dream'] 2.让人糊涂的sort()与sorted() 在Python 中sorted是内建函数(BIF),而sort()是列表类型的内建函数list.sort(). sorted() sorted(iterable[,

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

一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a','have','I'])) #['I', 'have', 'a', 'dream'] 2.让人糊涂的sort()与sorted() 在Python 中sorted是内建函数(BIF),而sort()是列表类型的内建函数list.sort(). sorted() sorted(iterable[,