Python学习之字典dict

这篇文章主要记载自己学习python中的字典 dict的过程
字典的特点: 可变,无序,key不重复

字典dict定义 初始化

  1. d = dict() 或者 d = {}
  2. dict(**kwargs) 使用name=value对初始化一个字典
>>> dic1 = dict(a=1,b=2,c=[1,2,3])
>>> dic1
{'a': 1, 'b': 2, 'c': [1, 2, 3]}
  1. **** d = {‘a’:10, ‘b’:20, ‘c’:None, ‘d’:[1,2,3]} : 常用方法
  2. dict(mapping,**kwarg) 使用一个字典构建另一个字典
>>> dic2 = dict(dic1)
>>> dic2
{'a': 1, 'b': 2, 'c': [1, 2, 3]}
  1. 类方法dict.fromkeys(iterable, value)
>>> d = dict.fromkeys(range(5))
>>> d
{0: None, 1: None, 2: None, 3: None, 4: None}

>>> d = dict.fromkeys(range(5),'a')
>>> d
{0: 'a', 1: 'a', 2: 'a', 3: 'a', 4: 'a'}

字典元素的访问

  • d[key]:
    1.返回key对应的值value
    2.key不存在抛出KeyError异常

  • get(key[, default]):
    1.返回key对应的值value
    2.key不存在返回缺省值,如果没有设置缺省值就返回None

  • setdefault(key[, default]):
    1.返回key对应的值value
    2.key不存在,添加kv对,value为default,并返回default,如果default没有设置,缺省为None

>>> d.setdefault(5)
>>> d
{0: 'a', 1: 'a', 2: 'a', 3: 'a', 4: 'a', 5: None}

>>> f = d.setdefault(6,'qdw')
>>> f
'qdw'
>>> d
{0: 'a', 1: 'a', 2: 'a', 3: 'a', 4: 'a', 5: None, 6: 'qdw'}

字典增加和修改

  • d[key] = value:
    1.将key对应的值修改为value
    2.key不存在添加新的kv对

  • update([other]) -> None:
    1.使用另一个字典的kv对更新本字典
    2.key不存在,就添加
    3.key存在,覆盖已经存在的key对应的值
    4.就地修改

字典删除

  • pop(key[, default]):
    1.key存在,移除它,并返回它的value
    2.key不存在,返回给定的default
    3.default未设置,key不存在则抛出KeyError异常

  • popitem():
    1.移除并返回一个任意的键值对
    2.字典为empty,抛出KeyError异常

  • clear():清空字典

字典删除

  • del语句:del 看着像删除了一个对象,本质上减少了一个对象的引用,del 实际上删除的是名称,而不是对象

字典遍历

  • for … in dict
>>> d = {0: 'a', 1: 'a', 2: 'a', 3: 'a', 4: 'a', 5: None, 6: 'qdw'}
1.遍历key:
>>> for k in d:
	print(k)
0
1
2
3
4
5
6

for k in d.keys(): 
	print(k)
2.遍历value:
(1)for k in d: 
	print(d[k])
(2)for k in d.keys(): 
	print(d.get(k))
(3)for v in d.values():
	 print(v)
a
a
a
a
a
None
qdw

3.遍历item,即kv对:
(1)for item in d.items():
	 print(item)
	 
(0, 'a')
(1, 'a')
(2, 'a')
(3, 'a')
(4, 'a')
(5, None)
(6, 'qdw')

(2)for item in d.items():
	 print(item[0], item[1])
	 
(3)for k,v in d.items(): 
	print(k, v)
0 a
1 a
2 a
3 a
4 a
5 None
6 qdw

(4)for k, _ in d.items():
	 print(k)
(5)for _ ,v in d.items():
	 print(v)

defaultdict

  • collections.defaultdict([default_factory[, …]]):
    第一个参数是default_factory,缺省是None,它提供一个初始化函数。当key不存在的时候,会调用这个工厂函数来生成key对应的value
>>> d2 = defaultdict(list)
>>> for k in 'mnopq':
		for v in range(3):
			d2[k].append(v)
>>> print(d2)
defaultdict(<class 'list'>, {'m': [0, 1, 2], 'n': [0, 1, 2], 'o': [0, 1, 2], 'p': [0, 1, 2], 'q': [0, 1, 2]})
	

OrderedDict

  • collections.OrderedDict([items]):
    key并不是按照加入的顺序排列,可以使用OrderedDict记录顺序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值