字典在 Python 附有语法和示例

什么是词典 Python?

A 字典在 Python 是包含键值对的无序且可变的数据值集合。字典中的每个键值对将键映射到其关联值,从而使其更加优化。python 中的字典是通过使用花括号 ({}) 括起以逗号分隔的键值对列表来声明的。 Python 字典分为两个元素:键(Keys)和值(Values)。

  • 键将是一个元素
  • 值可以是列表、列表中的列表、数字等。

语法为 Python 字典

Dict = { ' Tim': 18,  xyz,.. }

字典列在花括号中,花括号内声明了键和值。每个键与其值用冒号 (:) 分隔,每个元素用逗号分隔。

语法为 Python 字典

字典键的属性

使用字典键时有两个要点

  • 每个密钥不允许有多个条目(不允许重复密钥)
  • 字典中的值可以是任何类型,而键必须是不可变的,如数字, 元组
  • 字典键区分大小写- 键名相同但大小写不同的键将被视为不同的键 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”
  • 现在运行代码
  • 它从字典中检索蒂芙尼的年龄。

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),里面有男孩和女孩的姓名和年龄
  • 但是我们希望男孩列表与女孩列表分开,所以我们在单独的字典名称“Boys”和“Girls”中定义了男孩和女孩的元素。
  • 现在我们再次创建了新的字典名称“学生X”和“学生Y”,其中男孩字典的所有键和值都被复制到学生X中,女孩字典的所有键和值将被复制到学生Y中
  • 因此,现在您不必查看主词典(Dict)中的整个列表来检查谁是男孩,谁是女孩,如果您想要男孩列表,则只需打印学生 X;如果您想要女孩列表,则只需打印学生 Y
  • 因此,当你运行学生 X 和学生 Y 字典时,它将分别给出“男孩”和“女孩”字典中存在的所有元素

更新词典

您还可以通过向现有条目添加新条目或键值对或删除现有条目来更新词典。在此示例中,我们将向现有词典添加另一个名字“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 使用代码 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)
  • - for循环 在代码中检查主字典中的每个键是否为 Boys 键
  • 如果在主词典中存在,则应打印 true,否则应打印 false
  • 执行代码时,它会打印“True”三次,因为我们在“Boys”字典中有三个元素
  • 所以这表明“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 循环将调用字典中的每个元素,并按顺序打印字符串和值

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 > dict1,则方法返回 2;如果 dict1 < dict1,则方法返回 -2。

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
  • 我们有两个字典名称,“男孩”和“女孩”。
  • 在代码“cmp(Girls, Boys)”中,无论你先声明哪个,它都将被视为字典 1。在我们的例子中,我们首先声明了“Girls”,因此它将被视为字典 1,而 boys 则被视为字典 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)
  • 它将字典元素返回为可打印的字符串格式

以下是所有字典方法的列表

付款方式 描述 句法
复制() 将整个词典复制到新词典 字典.copy()
update() 通过向现有条目添加新条目或键值对或者删除现有条目来更新字典。 字典.更新([其他])
项目() 返回字典中的元组对(键,值)的列表。 字典.items()
种类() 您可以对元素进行排序 字典.sort()
len() 给出字典中的对数。 len(字典)
CMP() 比较两个字典的值和键 cmp(字典1,字典2)
Str() 将字典制作成可打印的字符串格式 Str(字典)

合并词典

这里将了解如何将两个给定的词典合并为一个词典。

我有两本字典,如下所示:

字典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,并创建一个名为 my_dict 的字典。

使用 update() 方法合并两个字典

update() 方法将帮助我们将一个字典与另一个字典合并。在示例中,我们将使用 my_dict1 更新 my_dict2。使用 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,它将与 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 字典定义为两个元素:键 (Keys) 和值 (Values)。
  • 字典不会按照任何特定顺序存储其信息,因此您可能无法按照输入的顺序获取信息。
  • 键将是一个元素
  • 值可以是列表、列表中的列表、数字等。
  • 每个密钥不允许有多个条目(不允许重复密钥)
  • 字典中的值可以是任何类型,而键必须是不可变的,如数字、元组或字符串。
  • 字典键区分大小写- 键名相同但大小写不同的键将被视为不同的键 Python 字典。

每日Guru99新闻简报

通过立即获取最新、最重要的人工智能新闻报道来开始您的一天。