【python笔记】字典(用代码阐述)

6 篇文章 2 订阅
2 篇文章 0 订阅

字典

定义

定义:字典是另一种容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 。
格式:d = {key1 : value1, key2 : value2, key3 : value3 }

创建

创建空字典:

dict = {}
dict01 = dict()

创建字典:

dict = {'a':'A','b':'B'}
dict = {dict([(1,2),(3,4)]}   #{1:2,3:4}

修改

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

dict = {'a': 'A','b': 'B','c': 'C'}
dict['c'] = 'C'     #添加信息
dict['c'] = 'CC'    #修改信息

修改字典元素
能删单一的元素也能清空字典,清空只需一项操作。显示删除一个字典用del命令。

dict = {'a': 'A','b': 'B','c': 'C'}
del dict['c']    # 删除键 'c'  --->{'a': 'A', 'b': 'B'}
dict.clear()     # 清空字典    --->{}
del dict         # 删除字典    ----><class 'dict'>
print(dict)

读取

读取元素(如果不存在则异常),建议:在字典中读取元素,先判断是否存在,再进行读取。

if 'd' in dict:    #判断d是否在dict中
	print(dict["d"])  
	
print(dict)

获取

获取字典中所有的元素

dict = {'a': 'A','b': 'B','c': 'C'}
for key in dict:
    print(key)        #获取所有的键 -->a b c
    print(dict[key])  #获取所有的值 -->A B C

输出结果

a
A
b
B
c
C

获取所有的键和值

dict = {'a': 'A','b': 'B','c': 'C'}
for key in dict.keys():
    print(key)
for value in dict.values():
    print(value)

输出结果

a
b
c
A
B
C

字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。

dict = {'a': 'A','b': "B",'a': 'aaa'}
print ("dict['a']: ", dict['a'])

输出结果:

dict['a']:  aaa

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

dict = {['a']: 'A','b': "B",'a': 'aaa'}
print ("dict['a']: ", dict['a'])

输出结果:

Traceback (most recent call last):
  File "H:/python programe/达内/boke_test.py", line 1, in <module>
    dict = {['a']: 'A','b': "B",'a': 'aaa'}
TypeError: unhashable type: 'list'

字典推导式

格式为:{键:值 for 键 变量 in 可迭代的对象 if 条件}
key:数字        value:数字平方

dic01 = {}
for i in range(1,10):
    if i % 2 == 0:
        dic01[i] = i**2
        
print(dic01)

等同于:

dic01 = {i:i**2 for i in range(1,10) if i % 2 ==0}
print(dic01)

输出结果

{2: 4, 4: 16, 6: 36, 8: 64}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值