Python字典——键值了!

 1.字典的定义 

字典, 以字为单位,按一定次序排列,每个字注上读音、意义和用法的工具书。

在Python中,字典(Dictionary)是一种无序的、可变的数据集合,用于存储键值对(key-value pairs)。字典的定义使用花括号 { },其中每个元素都是一个键值对,键和值之间使用冒号 : 分隔,每对键值对之间使用逗号 , 分隔。

my_dict = {key1: value1, key2: value2, key3: value3}

其中:

  • my_dict 是字典的变量名,可以根据需要自行命名。
  • key1key2key3 是字典中的键,它们必须是不可变的数据类型(通常是字符串或者数值)。
  • value1value2value3 是与每个键关联的值,可以是任何数据类型,包括整数、浮点数、字符串、列表、元组、甚至是另一个字典等。
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

在这个例子中:

  • 'name''age''city' 是字典的键。
  • 'Alice'30'New York' 是对应的值。

字典中的键必须是唯一的,但值则可以重复。字典是无序的,这意味着字典中元素的顺序不固定,不像列表那样可以通过索引访问元素。

字典的值可以通过键快速获取,也意味着存储值需要额外的存储键。

创建字典的几种方法:

直接使用花括号创建字典:

dict1 = {'a': 1, 'b': 2, 'c': 3}

print(dict1)

使用dict函数创建字典:

dict2 = dict(a=1, b=2, c=3)

print(dict2)

使用字典推导式创建字典:

list1 = ['a', 'b', 'c']

list2 = [1, 2, 3]

dict3 = {list1[i]: list2[i] for i in range(len(list1))}

print(dict3)

使用zip函数创建字典:

list1 = ['a', 'b', 'c']

list2 = [1, 2, 3]

dict4 = dict(zip(list1, list2))

print(dict4)

使用dict.fromkeys()创建具有相同值的字典:
 

dict5 = dict.fromkeys('abc', 1)

print(dict5)

2.字典的键与值 

在Python字典中,键(key)和值(value)有以下特点和使用方法:

  1. 键(Key)

    • 键必须是唯一的,不能重复。如果在定义字典时同一个键被指定多次,只会保留最后一个键值对。
    • 键必须是不可变的数据类型,比如整数、浮点数、字符串、元组等。通常使用字符串作为键,因为字符串在字典中的使用非常灵活。
  2. 值(Value)

    • 值可以是任意数据类型,可以是整数、浮点数、字符串、列表、元组、甚至是另一个字典。
    • 与键不同的是,值可以重复,即不同的键可以拥有相同的值。

还有两点需要注意:

1.不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': 'CSDN'}
print ("tinydict['Name']: ", tinydict['Name'])
'''
以上实例输出结果:
tinydict['Name']:  CSDN
'''

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

tinydict = {['Name']: 'Runoob', 'Age': 7}
print ("tinydict['Name']: ", tinydict['Name'])
'''
以上实例输出结果:
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    tinydict = {['Name']: 'Runoob', 'Age': 7}
TypeError: unhashable type: 'list'
'''

3.字典的常见操作 

 Python 字典是一种非常灵活和常用的数据结构,支持多种操作来增加、删除、访问和修改元素。以下是字典常见的操作:

创建空字典

使用大括号 { } 创建空字典:

# 使用大括号 {} 来创建空字典
emptyDict = {}
 
# 打印字典
print(emptyDict)
 
# 查看字典的数量
print("Length:", len(emptyDict))
 
# 查看类型
print(type(emptyDict))

'''
以上实例输出结果:

{}
Length: 0
<class 'dict'>
'''

使用内建函数 dict() 创建字典:

emptyDict = dict()
 
# 打印字典
print(emptyDict)
 
# 查看字典的数量
print("Length:",len(emptyDict))
 
# 查看类型
print(type(emptyDict))

'''
以上实例输出结果:

{}
Length: 0
<class 'dict'>
'''

访问字典里的值

把相应的键放入到方括号中

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

print ("tinydict['Name']: ", tinydict['Name'])

print ("tinydict['Age']: ", tinydict['Age'])

'''
以上实例输出结果:

tinydict['Name']:  Runoob
tinydict['Age']:  7
'''

如果用字典里没有的键访问数据,会输出错误如下:

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

print ("tinydict['Alice']: ", tinydict['Alice'])

#以上实例输出结果:

'''
Traceback (most recent call last):
 File "test.py", line 2, in <module>
   print ("tinydict['Alice']: ", tinydict['Alice'])
KeyError: 'Alice'
'''


修改字典

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

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} tinydict['Age'] = 8

# 更新 Age tinydict['School'] = "CSDN"

# 添加信息 print ("tinydict['Age']: ", tinydict['Age'])

print ("tinydict['School']: ", tinydict['School'])

'''
以上实例输出结果:

tinydict['Age']:  8
tinydict['School']:  CSDN
'''


删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显式删除一个字典用del命令

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} del tinydict['Name']

# 删除键

'Name' tinydict.clear()

# 清空字典

del tinydict

# 删除字典

print ("tinydict['Age']: ", tinydict['Age'])

print ("tinydict['School']: ", tinydict['School'])

'''

但这会引发一个异常,因为用执行 del 操作后字典不再存在:

Traceback (most recent call last):
  File "/runoob-test/test.py", line 9, in <module>
    print ("tinydict['Age']: ", tinydict['Age'])
NameError: name 'tinydict' is not defined
'''

 字典的内置函数

Python字典包含了以下内置函数: 

序号函数及描述实例
1len(dict)
计算字典元素个数,即键的总数。
>>> tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> len(tinydict)
3
2str(dict)
输出字典,可以打印的字符串表示。
>>> tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> str(tinydict)
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"
3type(variable)
返回输入的变量类型,如果变量是字典就返回字典类型。
>>> tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> type(tinydict)
<class 'dict'>

Python字典包含了以下内置方法:

序号函数及描述
1dict.clear()
删除字典内所有元素
2dict.copy()
返回一个字典的浅复制
3dict.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4dict.get(key, default=None)
返回指定键的值,如果键不在字典中返回 default 设置的默认值
5key in dict
如果键在字典dict里返回true,否则返回false
6dict.items()
以列表返回一个视图对象
7dict.keys()
返回一个视图对象
8dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9dict.update(dict2)
把字典dict2的键/值对更新到dict里
10dict.values()
返回一个视图对象
11pop(key[,default])
删除字典 key(键)所对应的值,返回被删除的值。
12popitem()
返回并删除字典中的最后一对键和值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值