什么是Python中的字典?
字典在Python是数据值的无序和多变收集保存键-值对。字典中的每个键值对都将键映射到其关联值,从而使其更加优化。python中的字典是通过使用花括号({})括以逗号分隔的键/值对列表来声明的。Python字典分为两个元素:键和值。
- 键将是一个元素
- 值可以是列表,也可以是列表中的列表,数字等。
在此Python教程中,您将学习:
- 什么是Python中的字典?
- Python字典的语法:
- 字典键的属性
- Python字典方法
- 更新字典
- 检查字典中是否已存在给定键
- Python字典内置函数
- 变量类型
- Python清单cmp()方法
- 字典Str(dict)
- 合并字典
- 使用update()方法合并两个字典
- 使用**方法合并字典(从Python 3.5开始)
- 字典成员资格测试
Python字典的语法
Dict = { ' Tim': 18, xyz,.. }
字典在大括号内列出,在这些大括号内声明键和值。每个键均以冒号(:)分隔其值,而逗号则分隔每个元素。
字典键的属性
使用字典键时有两个要点
- 每个密钥不允许多个条目(不允许重复密钥)
- 字典中的值可以是任何类型,而键必须是不变的,例如数字,元组或字符串。
- 字典键区分大小写-相同的键名,但大小写不同,在Python词典中被视为不同的键。
Python 2示例
Dict = {'Tim':18,'Charlie':12,'Tiffany':22,'Robert':25} print(Dict ['Tiffany'])
Python 3示例
Dict = {'Tim':18,'Charlie':12,'Tiffany':22,'Robert':25} print((Dict ['Tiffany']))
- 在代码中,我们有字典名称“ Dict”
- 我们在字典中声明了此人的姓名和年龄,其中姓名为“键”,年龄为“值”
- 现在运行代码
- 它从字典中检索蒂凡尼的年龄。
Python字典方法
复制字典
您还可以将整个词典复制到新词典中。例如,在这里,我们已将原始词典复制到新的词典名称“ Boys”和“ Girls”。
Python 2示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} studentX=Boys.copy() studentY=Girls.copy() print studentX print studentY
Python 3示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} studentX=Boys.copy() studentY=Girls.copy() print(studentX) print(studentY)
- 我们有原始的字典(Dict),其中包含男孩和女孩的名字和年龄
- 但是我们希望男孩列表与女孩列表分开,因此我们在单独的字典名称“男孩”和“女孩”中定义了男孩和女孩的元素。
- 现在,我们再次创建了新的词典名称“ student X”和“ student Y”,其中将男孩词典的所有键和值都复制到了学生X中,而将女孩复制到了学生Y中
- 因此,现在您不必查看主字典(Dict)中的整个列表来检查谁是男孩,谁是女孩,您只需要打印出学生X(如果想要男孩列表)和StudentY(如果想要女孩列表)
- 因此,当您运行Student X和StudentY词典时,它将分别给出词典中出现的所有元素“男孩”和“女孩”
更新字典
您还可以通过将新条目或键值对添加到现有条目或删除现有条目来更新字典。在示例中,我们将在现有字典中添加另一个名称“ Sarah”。
Python 2示例
Dict = {'Tim':18,'Charlie':12,'Tiffany':22,'Robert':25} Dict.update({“ Sarah”:9}) 打印Dict
Python 3示例
Dict = {'Tim':18,'Charlie':12,'Tiffany':22,'Robert':25} Dict.update({“ Sarah”:9}) print(Dict)
- 我们现有的字典“ Dict”没有名称“ Sarah”。
- 我们使用方法Dict.update将Sarah添加到我们现有的字典中
- 现在运行代码,它将Sarah添加到我们现有的字典中
从字典中删除密钥
Python词典使您可以自由地从词典列表中删除任何元素。假设您不想在列表中使用Charlie这个名字,那么可以通过以下代码删除key元素。
Python 2示例
Dict = {'Tim':18,'Charlie':12,'Tiffany':22,'Robert':25} del Dict ['Charlie'] print Dict
Python 3示例
Dict = {'Tim':18,'Charlie':12,'Tiffany':22,'Robert':25} del Dict ['Charlie'] print(Dict)
当您运行此代码时,它应打印不带Charlie的字典列表。
- 我们使用了代码del Dict
- 执行代码后,它已从主词典中删除了Charlie
字典items()方法
items()方法返回字典中的元组对(键,值)列表。
Python 2示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print "Students Name: %s" % Dict.items()
Python 3示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("Students Name: %s" % list(Dict.items()))
- 我们为Dict使用代码items()方法。
- 执行代码后,它将返回字典中的项列表(键和值)
检查字典中是否已存在给定键
对于给定列表,您还可以检查主词典中是否存在我们的子词典。在这里,我们有两个子词典“ Boys”和“ Girls”,现在我们要检查字典“ Boys”是否存在于主“ Dict”中。为此,我们将for循环方法与else if方法一起使用。
Python 2示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} for key in Dict.keys(): if key in Boys.keys(): print True else: print False
Python 3示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} for key in list(Dict.keys()): if key in list(Boys.keys()): print(True) else: print(False)
- 代码中的forloop检查主字典中的每个键是否有Boys键
- 如果它存在于主字典中,则应打印true,否则应打印false
- 当您执行代码时,它会打印“ True”三遍,因为“ Boys”字典中有三个元素
- 因此,这表明“男孩”存在于我们的主词典(字典)中
字典排序
在字典中,您还可以对元素进行排序。例如,如果我们要按字母顺序打印字典元素的名称,则必须使用for循环。它将相应地对字典的每个元素进行排序。
Python 2示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} Students = Dict.keys() Students.sort() for S in Students: print":".join((S,str(Dict)))
Python 3示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} Students = list(Dict.keys()) Students.sort() for S in Students: print(":".join((S,str(Dict))))
- 我们将字典的变量学生声明为“字典”。
- 然后,我们使用代码Students.sort,它将对字典中的元素进行排序
- 但是为了对字典中的每个元素进行排序,我们通过声明变量S来运行for循环
- 现在,当我们执行代码时,for循环将调用字典中的每个元素,并将按顺序打印字符串和值
Python字典内置函数
字典len()方法
len()函数给出字典中的对数。
例如,
Python 2示例
Dict = {'Tim':18,'Charlie':12,'Tiffany':22,'Robert':25} print“ Length:%d”%len(Dict)
Python 3示例
Dict = {'Tim':18,'Charlie':12,'Tiffany':22,'Robert':25} print(“ Length:%d”%len(Dict))
执行len(Dict)函数时,由于字典中有四个元素,因此输出为“ 4”
变量类型
Python不需要显式声明保留内存空间;它会自动发生。使用为变量“ =”等号分配值。确定变量类型的代码是“%type(Dict)”。
Python 2示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print "variable Type: %s" %type (Dict)
Python 3 示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("variable Type: %s" %type (Dict))
- 使用代码%type来了解变量类型
- 执行代码时,它告诉变量类型是字典
Python清单cmp()方法
比较方法cmp()在Python中用于比较两个字典的值和键。如果两个字典相等,则method返回0;如果dic1> dict2则返回1;如果dict1 <dict2则返回-1。
Python 2示例
Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} print cmp(Girls, Boys)
Python 3 示例
cmp is not supported in Python 3
- 我们有两个字典名称,“boys”和“girls”。
- 您在代码“ cmp(Girls,Boys)”中首先声明的那个都将被视为字典1。在本例中,我们首先声明了“ Girls”,因此它将被视为字典1,而男孩将被视为字典2。
- 当执行代码时,它输出-1,表示我们的字典1小于字典2。
字典Str(dict)
使用Str()方法,可以使字典成为可打印的字符串格式。
Python 2示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print "printable string:%s" % str (Dict)
Python 3示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("printable string:%s" % str (Dict))
- 使用代码%str(Dict)
- 它将字典元素返回为可打印的字符串格式
这是所有词典方法的列表
方法 | 描述 | 句法 |
---|---|---|
复制() | 将整个词典复制到新词典 | dict.copy() |
update() | 通过将新条目或键值对添加到现有条目或删除现有条目来更新字典。 | Dict.update([other]) |
items() | 返回字典中的元组对(键,值)的列表。 | dictionary.items() |
分类() | 您可以对元素进行排序 | dictionary.sort() |
len() | 给出字典中的对数。 | len(dict) |
cmp() | 比较两个字典的值和键 | cmp(dict1,dict2) |
Str() | 使字典成为可打印的字符串格式 | str(dict) |
合并字典
这里将了解如何将两个给定的字典合并为一个字典。
我有两个字典,如下所示:
字典1:my_dict1
my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
字典2:my_dict2
my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
让我们合并这两个字典my_dict1和my_dict2并使用namemy_dict创建一个字典。
使用update()方法合并两个字典
update()方法将帮助我们将一个字典与另一个字典合并。在示例中,我们将使用my_dict2更新my_dict1。使用update()方法后,my_dict1将具有my_dict2的内容,如下所示:
my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
my_dict1.update(my_dict2)
print(my_dict1)
输出:
{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}
使用**方法合并字典(从Python 3.5开始)
**在Python中称为Kwargs,它将与Python 3.5+版本一起使用。使用**,我们可以合并两个字典,它将返回合并的字典。在变量前面使用**会将变量替换为其所有内容。
这是一个使用**合并两个目录的工作示例。
my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
my_dict = {**my_dict1, **my_dict2}
print(my_dict)
输出:
{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}
字典成员资格测试
您可以测试关键字是否存在于字典中。只能对字典的键而不是值进行此测试。成员资格测试使用in关键字完成。当您使用in关键字检查字典中的键时,如果键存在,则表达式返回true,否则返回false。
这是显示在字典的会员测试的示例。
my_dict = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
print("email" in my_dict)
print("location" in my_dict)
print("test" in my_dict)
输出:
True True False
概要:
- 编程语言中的字典是一种数据结构,用于存储以某种方式连接的信息。
- Python字典定义为键和值两个元素。
- 词典不会以任何特定顺序存储其信息,因此您可能无法以输入顺序来获取信息。
- 键将是一个元素
- 值可以是列表,也可以是列表中的列表,数字等。
- 每个密钥不允许多个条目(不允许重复密钥)
- 字典中的值可以是任何类型,而键必须是不变的,例如数字,元组或字符串。
- 字典键区分大小写-相同的键名,但大小写不同,在Python词典中被视为不同的键。