python用字典统计信息_python 字典详细使用

1. 字典

字典是无序、可变序列。

定义字典时,每个元素的键和值用冒号分隔,元素之间用逗号分隔,所有的元素放在一对大括号“{}”中。

字典中的键可以为任意不可变数据,比如整数、实数、复数、字符串、元组等等。

globals()返回包含当前作用域内所有全局变量和值的字典。

locals()返回包含当前作用域内所有局部变量和值的字典。

1.1 字典创建与删除

使用=将一个字典赋值给一个变量:

>>> a_dict = {'server': 'localhost', 'database': 'mysql'}

>>> a_dict

{'database': 'mysql', 'server': 'localhost'}

>>> x = {}       #空字典

>>> x

{}

使用dict利用已有数据创建字典:

>>> keys = ['a', 'b', 'c', 'd']

>>> values = [1, 2, 3, 4]

>>> dictionary = dict(zip(keys, values))

>>> dictionary

{'a': 1, 'c': 3, 'b': 2, 'd': 4}

>>> x = dict()   #空字典

>>> x

{}

使用dict根据给定的键、值创建字典

>>> d = dict(name='xiao', age=17)

>>> d

{'age': 17, 'name': 'xiao'}

以给定内容为键,创建值为空的字典

>>> adict = dict.fromkeys(['name', 'age', 'sex'])

>>> adict

{'age': None, 'name': None, 'sex': None}

可以使用del删除整个字典

1.2 字典元素的读取

以键作为下标可以读取字典元素,若键不存在则抛出异常

>>> aDict = {'name':'xiao', 'sex':'male', 'age':17}

>>> aDict['name']

'xiao'

>>> aDict['tel']      #键不存在,抛出异常

Traceback (most recent call last):

File "", line 1, in

aDict['tel']

KeyError: 'tel'

使用字典对象的get方法获取指定键对应的值,并且可以在键不存在的时候返回指定值。

>>> print(aDict.get('address'))

None

>>> print(aDict.get('address', 'chengdu'))

chengdu

>>> aDict['score'] = aDict.get('score',[])

>>> aDict['score'].append(98)

>>> aDict['score'].append(97)

>>> aDict

{'age': 37, 'score': [98, 97], 'name': 'xiao', 'sex': 'male'}

使用字典对象的items()方法可以返回字典的键、值对

使用字典对象的keys()方法可以返回字典的键

使用字典对象的values()方法可以返回字典的值

>>> aDict={'name':'xiao', 'sex':'male', 'age':17}

>>> for item in aDict.items():

print(item)

('name', 'xiao')

('sex', 'male')

('age', 17)

>>> for key in aDict:      #不加特殊说明,默认输出键

print(key)

age

name

sex

>>> for key, value in aDict.items():      #序列解包用法

print(key, value)

age 17

name xiao

sex male

>>> aDict.keys()      #返回所有键

dict_keys(['name', 'sex', 'age'])

>>> aDict.values()      #返回所有值

dict_values(['xiao', 'male', 17])

1.3 字典元素的添加与修改

当以指定键为下标为字典赋值时:1)若键存在,则可以修改该键的值;2)若不存在,则表示添加一个键、值对。

>>> aDict['age'] = 18   #修改元素值

>>> aDict

{'age': 18, 'name': 'xiao', 'sex': 'male'}

>>> aDict['address'] = 'sichuan'      #增加新元素

>>> aDict

{'age': 18, 'address': 'sichuan', 'name': 'xiao', 'sex': 'male'}

使用字典对象的update()方法将另一个字典的键、值对添加到当前字典对象。

>>> aDict

{'age': 17, 'score': [98, 97], 'name': 'xiao', 'sex': 'male'}

>>> aDict.items()

dict_items([('age', 17), ('score', [98, 97]), ('name', 'xiao'), ('sex', 'male')])

>>> aDict.update({'a':'a','b':'b'})

>>> aDict

{'a': 'a', 'score': [98, 97], 'name': 'xiao', 'age': 17, 'b': 'b', 'sex': 'male'}

使用del删除字典中指定键的元素

使用字典对象的clear()方法来删除字典中所有元素

使用字典对象的pop()方法删除并返回指定键的元素

使用字典对象的popitem()方法删除并返回字典中的一个元素

1.4 字典应用案例

首先生成包含1000个随机字符的字符串,然后统计每个字符的出现次数。

>>> import string

>>> import random

>>> x = string.ascii_letters + string.digits + string.punctuation

>>> y = [random.choice(x) for i in range(1000)]

>>> z = ''.join(y)

>>> d = dict()

>>> for ch in z:#使用字典保存每个字符出现次数

d[ch] = d.get(ch, 0) + 1

>>> print(d)

1.5 字典推导式

>>> {i:str(i) for i in range(1, 5)}

{1: '1', 2: '2', 3: '3', 4: '4'}

>>> x = ['A', 'B', 'C', 'D']

>>> y = ['a', 'b', 'b', 'd']

>>> {i:j for i,j in zip(x,y)}

{'A': 'a', 'C': 'b', 'B': 'b', 'D': 'd'}

>>> s = {x:x.strip() for x in (' he ', 'she ', ' I')}

>>> s

{' he ': 'he', ' I': 'I', 'she ': 'she'}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值