python 基础 字典

字典操作

 字典一种key - value 的数据类型

  1. 特性:
  2. 无顺序
  3. 去重
  4. 查询速度快,比列表快多了
  5. 比list占用内存多

语法:

info = {
    'abc001': "Ben",
    'abc002': "Mike",
    'abc003': "John",
}

字典的特性

  • 字典是无序的
  • key必须是唯一的

查找

>>> info = {
...     'abc001': "Ben",
...     'abc002': "Mike",
...     'abc003': "John",
... }
>>>
>>>
>>> print(info.get("abc001")) 
Ben
>>>
>>> print("abc003"in info)  // 标准用法
True
>>>

// 反馈True为查找到 ,false为查不到

添加

info = {
    'stu1101': "TengLan Wu",
    'stu1102': "LongZe Luola",
    'stu1103': "XiaoZe Maliya",
}
>>> info['abc004']='Tom'   //添加
>>> print(info)
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
>>>

取值

>>>
>>> info
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
>>>
>>>
>>> print(info['abc001'])
Ben
>>>
>>>
>>> print(info['abc004'])
Tom
>>>

另一种字典取值方式

get()

>>>
>>> a = {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
>>>
>>> a.get('abc001')
'Ben'

>>> a.get('abc002')
'Mike'
>>>

删除

>>> info
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'}
>>>
>>> info.pop("abc004")  # 标准删除  
'Tom'
>>> info
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John'}

# 不加参数默认删除最后一个值
>>> d = [1,2,3,4,5]
>>>
>>> d.pop()
5
>>> d
[1, 2, 3, 4]

>>> 
>>> info.popitem()  # 随机删除
('abc003', 'John')
>>> info
{'abc001': 'Ben', 'abc002': 'Mike'}
>>>
# del 是Python通用删除方法
>>> del info['abc001']
>>> info
{'abc002': 'Mike'}
>>>

循环dict

info = {
    'abc001': "Ben",
    'abc002': "Mike",
    'abc003': "John"
}
//字典循环
for i in info:
    print(i,info[i])

其他

keys values update items

##keys

>>> info = {
...     'abc001': "Ben",
...     'abc002': "Mike",
...     'abc003': "John"
... }
>>> print(info)
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John'}
>>>


#values
>>> print(info.values())           #把所有的值打印不包括Key
dict_values(['Ben', 'Mike', 'John'])


#keys
>>> print(info.keys())             #把所有Key打印出来,不包括values
dict_keys(['abc001', 'abc002', 'abc003'])
>>>
>>>

#update
>>> b ={
...     'stu1101': "alex",
...     1:2,
...     3:4
... }
>>> info.update(b)   #合并字典,没有的创建新的,存在的覆盖
>>> print(info)
{'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'stu1101': 'alex', 1: 2, 3
: 4}
>>>
>>>

#items
>>> print(info.items())   #字典转换列表
dict_items([('abc001', 'Ben'), ('abc002', 'Mike'), ('abc003', 'John'), ('stu1101
', 'alex'), (1, 2), (3, 4)])
>>>

python3 循环字典两种方法

items()

>>> D = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www.
taobao.com'}

>>> for k,v in D.items():
...  print(k,v)
...

>>> D.items()
dict_items([('Google', 'www.google.com'), ('Runoob', 'www.runoob.com'), ('taobao
', 'www.tao.com')])


# 执行结果
Google www.google.com
Runoob www.runoob.com
taobao www.taobao.com

这种方法,大数据时候不要用,因为要把字典转换成一个列表元组,对占用性能。

推荐循环字典方法:

>>> for i in D:
...  print(i,D[i])
...

# 执行结果
Google www.google.com
Runoob www.runoob.com
taobao www.tao.com
原文地址:https://www.cnblogs.com/mingerlcm/p/7921800.html