(PYTHON)字典及字典操作

一,字典的基本形式:

类似于c++中的map,反映了映射这一数据结构,通过键值对的形式储存了数据之间的对应关系。

基本形式:

{  键1: 值1 , 键2:值2,.....  }

补充:

其中只有不可改变的才能充当键,不可修改:如元组, ......;

任何类型的数据均可以充当值, 可以修改;                         

 二,字典的创建与访问:

直接构建:

dicarea = {'zhonguo': 1231, 'sdf': 3223, 'sdfaa': 1232}

使用内置函数dict创建字典:

python支持将双元素序列转化成字典:

items = [('russia', 12012), ('china', 960)]
dicarea = dict(items)

关于字典键与值的特别说明:

I, 键具有唯一性,不允许出现相同的键,但允许不同的键对于相同的值。

II, 字典中的键必须是不可变的类型,一般是字符串、数字或 者元组;而值却可以是任何数据类           型。

III,若字典中需要用多个元素组成值,则应用元组包括

字典的访问:

字典是不能通过索引下标访问的,必须通过键名进行访问条目的值。

三,对字典的操作:

空字典与字典的更新:

可以只用一堆大括号来创建一个空字典

dicarea = {}
type(dicarea)

直接键值对信息来更新字典:

若键名已存在,则将其值进行更新;若不存在,则创建。

dic['sadfa'] = 121232

字典的删除操作:

1,用del命令删除指定条目:

del 字典名[ 键 ] ;

2,用pop方法删除指定条目:

  字典名. pop(键, 默认值)

在删除的同时会返回删除的值,若要删除的键不存在,则会返回默认值。

dicarea = {'russia': 1201, 'china': 2121, 'china': 960}
area = dicarea.pop('russia', 0)
area

3,用popitem删除字典的随机条目:

字典名.popitem();

随机删除并以元组形式返回该条条目。

4,用clear方法清空字典条目(使该字典成为空字典):

字典名.clear()

5, 直接删除整个字典:

del 字典名

查找字典条目:

1,判断字典中是否含有该个条目:

     键 in 字典

2,get函数获取条目的值:

字典名.get (键, 默认值)

【不存在时,会返回默认值】

## 统计字母出现频率
dic = {}
a = "life is short , we need python"
for c in a:
    dic[c] = dic.get(c, 0) + 1
print(dic)

字典的遍历:

· 字典.items( ) : 遍历所有条目,并以双元素列表形式返回;

· 字典.keys( ) :提取所有的键,并以列表形式返回;

· 字典.values( ) : 提取所有的值, 并以列表形式返回;

for key in dic.keys():
    print(key)

for value in dic.values():
   print(value)

字典的排序:

字典本身是无序的,只能用python内置函数sorted,将条目按照希望的顺序进行排列;

(排序的结果是关于键的有序列表)

## 根据面积大小对国家进行排序
dicareas = {'russia': 1707.5, 'canda': 997.1, 'china': 960.1}
    isvk = [(v, k) for k, v in dicareas.items()]  ## 使用列表生成器生成列表
    isvk.sort()
    iskv = [(k, v) for v, k in isvk]
    

字典的合并:

字典的合并即是将两个字典合并成一个字典,理解为字典的扩充

1,使用字典的update函数:

将参数字典条目合并进原字典中:

  字典名.update(参数字典名)

相同键的条目只保留一个

2,使用dict函数将两个字典合并成一个新字典:

dictnew = dict(字典1, **字典2)

 实质上是按键实现的值合并

## 将两个信息揉在一起
dicAreas={'俄罗斯':1707.5,'加拿大':997.1,'中国':960.1,'美国':936.4,'巴西':854.7}
 dicCapitals={'俄罗斯':'莫斯科','加拿大':'渥太华','中国':'北京','美国':'华盛顿','巴西':'巴西利亚'}
   diccountry = {}
   for key in dicAreas.keys():
        diccountry[key] = [dicArea[key], dicCapitals[key]]
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值