Python字典使用方法大全
python中还有一种数据结构特别重要,就是字典。字典是键(key)-值(value)一一对应组成。这样的键-值组合叫做项。键与值之间用‘:’分隔,项之间用‘,’分隔。
字典是用花括号‘{}’表示。说到这,要区别一下,列表用‘[ ]’表示,元组用‘()’表示。
首先,我们来看看如何创建字典。
#这里用电话簿实例
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
A = phonebook['A']
print(A)
#字典的创建也可以利用函数dict
items = [('name', 'Lisa'), ['age', 23]]
d = dict(items)
print(d['name'])
print(d['age'])
#当然也可以简化成这样
d = dict(name='lisa', age=23)
print(d['name'])
print(d['age'])
运行结果如图所示:
下面来介绍字典的基本操作(5种):
字典的基本操作有点与序列的方法相似。
#关于字典的基本操作
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
#1.长度 len 返回项的个数 len(obj)
print(len(phonebook))
#2.返回键(key)对应的值(value) obj[key]
B = phonebook['B']
print(B)
#3.键值关联 这种方法可以改变其键对应的值
C = '22'
phonebook['C'] = C
print(phonebook['C'])
#4.删除操作 del obj[key] 删除键为key的项
del phonebook['C']
print(phonebook)
#5.成员资格查找 key in obj
if 'A' in phonebook:
print("phonebook has 'A'")
运行结果如图所示:
当然,字典还有很多其他的方法。下面来进行一个概述:
1.clear方法
直接将其字典内容清空,返回一个空的字典。
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print('原字典为:', phonebook)
phonebook.clear()
print('clear之后:', phonebook)
运行结果如图所示:
2.copy方法
很明显,这个直接就是对字典进行一个拷贝。但得注意,这里的拷贝只是浅拷贝。
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
phonebook2 = phonebook.copy()
print('copy之后,phonebook2为:', phonebook2)
#注意啦,这个copy只是浅复制
运行结果如图所示:
3.fromkeys方法
fromkeys方法可以创建一个新字典,可以只创建新的键,但这样默认的值为None。
当然,你也可以自定义键所对应的值,同样,设置的也是默认值。
#用fromkeys方法创建一个新字典 这样创建的字典默认值为None,但也可以自己定义
A = dict.fromkeys(['name', 'age'])
print(A)
B = dict.fromkeys(['name', 'age'], '(unknown)')
print(B)
运行结果如图所示:
4.setdefault方法
setdefault方法与fromkeys方法有点类似。就相当于设置默认值。但这种方法更适合设置默认值。
#setdafult方法 给字典中添加指定的键-值对应关系,但值为默认值,可以进行更改替换。有点与get方法类似。
#我们先创建一个新空字典
T = {}
T.setdefault('num', '(unknown)')
print(T)
#这里对num的值进行了更改。
T['num'] = '12333'
T.setdefault('num', '(unknown)')
print(T)
运行结果如图所示:
5.get方法
get方法是对字典访问进行了拓展,提供了一种更宽松的环境。
如果直接进行键的访问,这时键要是不存在,程序会进行报错。
#如果直接访问字典中不存在的键,就会报错
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print(phonebook['D'])
但使用get方法进行查找,就算键不存在,也不会报错。只会返回一个None值。
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
#但使用get方法就只会返回None
T = phonebook.get('D')
print(T)
#同样get方法与普通查找相同
print(phonebook.get('A'))
运行结果如图所示:
6.keys方法
keys方法,就是将字典中所有的键(key)整合到一个列表中去并返回。
#keys方法以列表的方式返回字典所有的键(key)
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print(phonebook.keys())
运行结果如图所示:
7.values方法
values方法,将字典中所有的值(value)整合到一个列表中去并返回。
#方法values 与方法key 相对,以列表的方式返回字典的值(value)
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print(phonebook.values())
运行结果如图所示:
8.items方法
items方法,将字典中所有的项(item)整合到一个列表中并返回。
#方法items返回包含列表所有字典项的列表
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print(phonebook.items())
运行结果如图所示:
这里的三种方法,keys,values,items;分别对应了字典中的键(key),(value),(item),都是将其字典中对应的内容以列表的形式进行整合并返回。
9.pop方法
pop方法,删除键对应的项,同时返回该键对应的值。如果不特别指明键,那么删除的将会是最后一个键。
#pop方法 删除键对应的项,同时返回该键对应的值
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667'}
print('原来的phonebook为:', phonebook)
#删除键为’A‘的项,同时返回该键对应的值
T = phonebook.pop('A')
print(T)
print('现在的phonebook为:', phonebook)
运行结果如图所示:
10.popitem方法
popitem方法是删除字典中最后一项。
有些书本上写的是随机弹出,但实践了一下,弹出的始终是最后一个项。
#popitem方法,就像这名字一样,弹出最后一个项嘛。但有些书上写着随机弹出,实践过后,还是弹出最后一个。
phonebook = {'A': '1234567', 'B': '223344556', 'C': '334455667', 'D': '28288288', 'E': '37377737'}
T = phonebook.popitem()
print(T)
运行结果如图所示:
11.update方法
update方法是对字典内容的一个更新方法。
可以添加新的项,也可对已有的项,进行替换。
#方法update 使用字典中所包含的值来进行数据的更新,也可直接给字典添加新的项。
T = {
'A': 'Lisa',
'B': 'Six',
'C': 'DD'
}
P = {
'D': 'test',#新的项
'A': 'Peter'#已有键'A' 进行数据更换
}
T.update(P)
print(T)
运行结果如图所示:
希望对您有所帮助,谢谢~