python基础(一)数据结构之字典

字典是python中唯一的一个映射类型

一、创建字典和访问字典

(一) 创建字典

1. 创建空字典
dict1 = {}
2. dict()方法创建字典
# 参数为一个元组
>>> dict1 = dict(((1,'a'), (2, 'b')))
>>> dict1
{1: 'a', 2: 'b'}
# 参数为key=value
# 此种创建字典的方式,不能加‘’号
>> dict1 = dict(1='a', 2='b')
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
>>> dict1 = dict('1'='a', '2'='b')
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
>>> dict1 = dict(1=a, 2=b)
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
>>> dict1 = dict(a=1, b=2)
>>> dict1
{'a': 1, 'b': 2}
3. 直接创建
dict1 = {1:'a', 2:'b'}
4. 其他方式创建
>>> dict1 = dict(zip([1, 2, 3], ['a', 'b', '']))
>>> dict1
{1: 'a', 2: 'b', 3: ''}
>>> dict1 = dict([(1, 'a'), (2, 'b')])
>>> dict1
{1: 'a', 2: 'b'}

(二) 访问字典
1. 直接访问

>>> dict1
{1: 'a', 2: 'b'}
>>> dict1[2]
'b'
2.get() 方法访问  该方法常用,如果找不到对应的key,不会报错,会返回第二个参数
>>> dict1
{1: 'a', 2: 'b'}
>>> dict1.get(1, 'wu')
'a'
>>> dict1.get(3, 'wu')
'wu'

(三)修改字典
1. 直接修改,如果key不存在,则会会在字典里生成新的key value

>>> dict1
{1: 'a', 2: 'b'}
>>> dict1[2] = 1
>>> dict1
{1: 'a', 2: 1}

`2. update()方法更新字典

>>> dict1
{1: 'a', 2: 1}
>>> dict2 = {3: 'c'}
>>> dict1.update(dict2)
>>> dict1
{1: 'a', 2: 1, 3: 'c'}
>>> dict1
{1: 'a', 2: 1, 3: 'c'}
>>> dict2 = {3: 'd'}
>>> dict1.update(dict2)
>>> dict1
{1: 'a', 2: 1, 3: 'd'}
>>> 
3. setdfault() 如果键不存在于字典中,将会添加键并将值设为默认值。
>>> dict1
{2: 1, 1: 1, '33': None}
>>> dict1.setdefault(4, 'e')
'e'
>>> dict1
{2: 1, 1: 1, '33': None, 4: 'e'}
>>> dict1.setdefault(4, '1')
'e'

(四) 删除字典的key
1.pop()方法删除key,返回value

>>> dict1
{1: 'a', 2: 1, 3: 'd'}
>>> dict1.pop(1)
'a'
>>> dict1
{2: 1, 3: 'd'}
>>> 
  1. popitem() 方法返回并删除字典中的最后一对键和值
>>> dict1.popitem()
(3, 'd')
>>> dict1
{2: 1}

(五) keys(), values(), items()

>>> dict1
{2: 1, 1: 1, '33': None, 4: 'e'}
>>> dict1.keys()
dict_keys([2, 1, '33', 4])
>>> list(dict1.keys())
[2, 1, '33', 4]
>>> list(dict1.values())
[1, 1, None, 'e']
>>> list(dict1.items())
[(2, 1), (1, 1), ('33', None), (4, 'e')]

(六) 是否以某字符串开头或者结尾

>>> str1
'ZSFzbcf123ff'
>>> str1.startswith('ZSF')
True
>>> str1.endswith('f')
True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值