Python Dictionary(Dict):Update、Cmp、Len、Sort、Copy、Items、str 示例
什么是 Python 中的字典?
Python 中的字典 是保存键值对的无序且可变的数据值集合。字典中的每个键值对都将键映射到其关联的值,从而使其更加优化。 Python 中的字典是通过使用花括号 ({}) 括住以逗号分隔的键值对列表来声明的。 Python Dictionary 分为两个元素:Keys 和 Values。
- 键将是单个元素
- 值可以是列表或列表中的列表、数字等。
在本 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”
- 我们在字典中声明了这个人的名字和年龄,其中名字是“Keys”,年龄是“value”
- 现在运行代码
- 它从字典中检索 tiffany 的年龄。
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),其中包含男孩和女孩的姓名和年龄。
- 但我们希望男孩列表与女孩列表分开,因此我们在单独的字典名称“男孩”和“女孩”中定义了男孩和女孩的元素。
- 现在我们再次创建了新的字典名称“学生 X”和“学生 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}) print 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 这个名字,那么您可以通过以下代码删除关键元素。
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() 方法返回字典中元组对 (Keys, Value) 的列表。
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 使用 code 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 Boys.keys(): if key in Dict.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(Boys.keys()): if key in list(Dict.keys()): print(True) else: print(False)
- 代码中的 forloop 检查主字典中的每个键是否有男孩键
- 如果它存在于主字典中,则应打印为 true,否则应打印为 false
- 当您执行代码时,它会打印 3 次“True”,因为我们在“Boys”字典中有三个元素
- 所以它表明我们的主词典(Dict)中存在“男孩”
对字典进行排序
在字典中,您还可以对元素进行排序。例如,如果我们想按字母顺序打印字典元素的名称,我们必须使用 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[S])))
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[S]))))
- 我们为字典“Dict”声明了变量 students。
- 然后我们使用代码 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 中用于比较两个字典的值和键。如果方法在两个字典相等时返回 0,如果 dic1> dict2 则返回 1,如果 dict1
Python 2 示例
Python 3 示例
使用 Str() 方法,可以将字典变成可打印的字符串格式。
Python 2 示例
Python 3 示例
这里是所有字典方法的列表
这里将了解如何将两个给定的字典合并到一个字典中。
我有两个字典,如下所示:
字典1:my_dict1
字典 2:my_dict2
让我们合并这两个字典 my_dict1 和 my_dict2 并创建一个带有 namemy_dict 的字典。
update() 方法将帮助我们将一个字典与另一个字典合并。在示例中,我们将使用 my_dict2 更新 my_dict1。使用 update() 方法后,my_dict1 将具有 my_dict2 的内容,如下所示:
输出:
** 在 Python 中称为 Kwargs,它适用于 Python 3.5+ 版本。使用**,我们可以合并两个字典,它会返回合并后的字典。在变量前面使用 ** 会将变量替换为其所有内容。
这是一个使用 ** 合并两个目录的工作示例。
输出:
您可以测试字典中的当前键是否存在。此测试只能在字典的键上执行,而不能在值上执行。成员资格测试是使用 in 完成的 关键词。当您使用 in 检查字典中的键时 关键字,如果键存在则表达式返回true,否则返回false。
这是一个显示字典上的成员船测试的示例。
输出:Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
print cmp(Girls, Boys)
cmp is not supported in Python 3
字典 Str(dict)
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print "printable string:%s" % str (Dict)
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("printable string:%s" % str (Dict))
方法 说明 语法 copy() 将整个字典复制到新字典 dict.copy() 更新() 通过向现有条目添加新条目或键值对或删除现有条目来更新字典。 Dict.update([其他]) items() 返回字典中元组对(键、值)的列表。 dictionary.items() 排序() 你可以对元素进行排序 dictionary.sort() len() 给出字典中的对数。 len(dict) cmp() 比较两个字典的值和键 cmp(dict1, dict2) Str() 将字典制作成可打印的字符串格式 Str(dict) 合并字典
my_dict1 = {"username": "XYZ", "email": "[email protected]", "location":"Mumbai"}
my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
使用 update() 方法合并两个字典
my_dict1 = {"username": "XYZ", "email": "[email protected]", "location":"Mumbai"}
my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
my_dict1.update(my_dict2)
print(my_dict1)
{'username': 'XYZ', 'email': '[email protected]', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}
使用 ** 方法合并字典(从 Python 3.5 开始)
my_dict1 = {"username": "XYZ", "email": "[email protected]", "location":"Mumbai"}
my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
my_dict = {**my_dict1, **my_dict2}
print(my_dict)
{'username': 'XYZ', 'email': '[email protected]', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}
字典成员测试
my_dict = {"username": "XYZ", "email": "[email protected]", "location":"Mumbai"}
print("email" in my_dict)
print("location" in my_dict)
print("test" in my_dict)
True
True
False
总结:
Python