字典

字典dict基本概念

 

         字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 。键必须是唯一的,但值则不必

 

# 什么是映射?什么是字典dict?

 

name = ['大头儿子','小头爸爸','隔壁老王']

age = [6,35,37]

# 首先虽然序列是有顺序的,但还是不能直接把名字和年龄关联起来,这里只是顺序对上,且并没有一对一的关系

 

dic = {'大头儿子':6, '小头爸爸': 35, '隔壁老王':37}

print(dic,type(dic))

# 用{}来表示,按照key:value来表示字典中的元素,其中key是键,value是值,key-value也就是键值对

# 这里dic就是一个字典类型的变量

 

dic = [{'name':'Tom', 'age':18},{'name':'Jack', 'age':19},{'name':'Alex', "age":17}]

print(dic)

# 一个以字典为元素的列表,有没有觉得键值对很像数据中的字段和字段值?

 

# 字典的特点

 

dic = {'a':1,'b':2,'c':3}

# 键值对,一定共同出现,不能只有一个

 

dic = {'a':1,'a':2}

print(dic)

# 不允许同一个键出现两次:创建时如果同一个键被赋值两次,后一个值会被记住

 

dic = {'var1':1, 'var2':'hello', 'var3':[1,2,3], 'var4':{'a':1,'b':2}}

# key必须是字符串,value则可以是任意对象:数值,字符串,序列,字典

 

print(dic)

# 字典是一个无序集合,序列由于没有key来做对应,所以以顺序来对应值

# 序列有顺序,字典没有!

 

dic['var5'] = '添加一个值'  # 任意添加元素

dic['var4'] = '任意修改其中一个值'  # 任意修改元素

del dic['var1']  # 任意删除元素

print(dic)

 

dic.clear()  # 清空词典所有条目

print(dic)

 

del dic  # 删除词典

#print(dic)

 

# 申明一个字典

 

dic = {'a':1,'b':2}

# 最简单直接的方式,手动书写申明一个字典变量,注意是:不是=

 

dic = dict(m = 10 ,n = 'aa', h = [1,2,3])

print(dic)

# dict()函数

 

lst1=[("a","fff"),("b","ggg")]

lst2=[["c",1],["d",2]]

lst3=(("e",[1,2]),("f",[3,4]))

dic1 = dict(lst1)

dic2 = dict(lst2)

dic3 = dict(lst3)

print(dic1,dic2,dic3)

# dict()由序列生成一个字典,嵌套序列,可以是list或者tuple

 

keys = ["a", "b", "c"]

dic1 = dict.fromkeys(keys)

dic2 = dict.fromkeys(keys, 'hello')

print(dic1,dic2)

# 只有key,直接生成一个字典

 

字典常用操作

 

字典内置函数&方法

 

# 字典常用操作

 

dic1 = {"a":1, "b":2}

dic2 = {"c":3, "d":4}

dic1.update(dic2)

print(dic1,dic2)

# dict.update()方法:更新/合并一个字典,把第二个字典合并到第一个字典,改变了第一个字典

 

a = {'m':1 , 'n':2 , 'p':3}

b = a

a.update({'q':4})

print(a,b)

# 和序列的原理一样,a和b指向同一个字典,所以会一起更新

 

a = {'m':1 , 'n':2 , 'p':3}

b = a.copy()

a.update({'q':4})

print(a,b)

# 通过.copy()方法,复制一个新的字典

 

print(len(a))

# 查看字典元素个数

 

print('m' in a)

print(1 in a)

# in / not in :判断是否包含,这里的判断对象是key

 

字典的元素访问及遍历

 

如何读取字典?

 

# 字典的元素访问

 

dic = {'a':1, "b":2, "c":3}

print(dic['a'])

#print(dic[1])  # 不能用序列的索引方式

# 字典里面也就同样的意思,但字典没有顺序,以key来作为指向,所以指向的key必须存在

 

poi = {'name':'shop', 'city':'shanghai', 'information':{'address':'somewhere', 'num':66663333}}

print(poi['information']['address'])

# 对于嵌套字典,输出嵌套内容,通过重复指向来输出

 

print(poi.get('name'))

print(poi.get('type',print('nothing')))

# .get(key)方法:直接查看key的value,如果没有相应key则返回None,添加print参数可以多返回一个值

 

print(poi.keys(),type(poi.keys()))

print(list(poi.keys()))

# .keys()方法:输出字典所有key,注意这里的输出内容格式是视图,可以用list()得到key的列表,类似range()

 

print(poi.values(),type(poi.values()))

print(list(poi.values()))

# .values()方法:输出字典所有values,原理同.keys()方法

 

print(poi.items(),type(poi.items()))

print(list(poi.items()))

# .items()方法:输出字典所有items(元素),原理同.keys()方法

 

# 字典的元素遍历

 

poi = {'name':'shop', 'city':'shanghai', 'information':{'address':'somewhere', 'num':66663333}}

for key in poi.keys():

    print(key)

print('-------')

 

for value in poi.values():

    print(value)

print('-------')

 

for (k,v) in poi.items():

    print('key为 %s, value为 %s' %(k,v))

print('-------') 

# for函数遍历

 

字典内置函数&方法

Python字典包含了以下内置函数:

序号

函数及描述

实例

1

len(dict)

计算字典元素个数,即键的总数。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> len(dict)
3

2

str(dict)

输出字典,以可打印的字符串表示。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> str(dict)
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"

3

type(variable)

返回输入的变量类型,如果变量是字典就返回字典类型。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> type(dict)
<class 'dict'>

 Python字典包含了以下内置方法:

序号

函数及描述

1

radiansdict.clear()

删除字典内所有元素

2

radiansdict.copy()

返回一个字典的浅复制

3

radiansdict.fromkeys()

创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

4

radiansdict.get(key, default=None)

返回指定键的值,如果值不在字典中返回default值

5

key in dict

如果键在字典dict里返回true,否则返回false

6

radiansdict.items()

以列表返回可遍历的(键, 值) 元组数组

7

radiansdict.keys()

返回一个迭代器,可以使用 list() 来转换为列表

8

radiansdict.setdefault(key, default=None)

和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

9

radiansdict.update(dict2)

把字典dict2的键/值对更新到dict里

10

radiansdict.values()

返回一个迭代器,可以使用 list() 来转换为列表

11

pop(key[,default])

删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

12

popitem()

随机返回并删除字典中的一对键和值(一般删除末尾对)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值