Python 字典

Python 字典

字典是一种在Python中存储数据的有用数据结构,因为它们能够模拟现实世界数据的排列,其中给定键存在一个特定的值。

使用Python字典,数据以键值对的形式存储。

  • 这种数据结构是可变的。
  • 字典的组成部分使用键和值构建。
  • 键只能有一个组成部分。
  • 值可以是任何类型,包括整数、列表和元组。

换句话说,字典是一组键值对,其中值可以是任何Python对象。相反,键是不可变的Python对象,如字符串、元组或数字。字典条目在Python 3.7及更高版本中是有序的。在Python 3.6及之前的版本中,字典一般是无序的。

创建字典

大括号是生成Python字典的最简单方法,虽然也有其他方法。用大括号将多个键值对括起来,用冒号将每个键与其值分隔开,就可以构建字典。(:)。以下是定义字典的语法。

语法:

Dict = {"Name": "Gayle", "Age": 25} 

在上述的字典 Dict 中,键 NameAge 是属于不可变对象的字符串。

让我们来看一个创建字典并打印其内容的示例。

代码

Employee = {"Name": "Johnny", "Age": 32, "salary":26000,"Company":"^TCS"}      
print(type(Employee))      
print("printing Employee data .... ")      
print(Employee)       

输出

<class 'dict'>
printing Employee data .... 
{'Name': 'Johnny', 'Age': 32, 'salary': 26000, 'Company': TCS}

Python提供了内置函数 dict() 方法,也可以用于创建字典。

空的花括号{}用于创建空字典。

代码

# Creating an empty Dictionary     
Dict = {}     
print("Empty Dictionary: ")     
print(Dict)     

# Creating a Dictionary     
# with dict() method     
Dict = dict({1: 'Hcl', 2: 'WIPRO', 3:'Facebook'})     
print("\nCreate Dictionary by using  dict(): ")     
print(Dict)     

# Creating a Dictionary     
# with each item as a Pair     
Dict = dict([(4, 'Rinku'), (2, Singh)])     
print("\nDictionary with each item as a pair: ")     
print(Dict)     

输出

Empty Dictionary: 
{}

Create Dictionary by using  dict(): 
{1: 'Hcl', 2: 'WIPRO', 3: 'Facebook'}

Dictionary with each item as a pair: 
{4: 'Rinku', 2: 'Singh'}

访问字典值

为了访问列表和元组中包含的数据,我们已经学习了索引。字典的键可以用来获取值,因为它们彼此是唯一的。以下方法可用于访问字典的值。

代码

Employee = {"Name": "Dev", "Age": 20, "salary":45000,"Company":"WIPRO"}    
print(type(Employee))    
print("printing Employee data .... ")    
print("Name : %s" %Employee["Name"])    
print("Age : %d" %Employee["Age"])    
print("Salary : %d" %Employee["salary"])    
print("Company : %s" %Employee["Company"])     

输出结果

ee["Company"])    
Output
<class 'dict'>
printing Employee data .... 
Name : Dev
Age : 20
Salary : 45000
Company : WIPRO

Python提供了一种替代方法来使用get()方法来访问字典的值。它会给出与索引相同的结果。

添加字典的值

字典是一种可变的数据类型,利用正确的键可以改变它的值。Dict[key] = value,值可以被修改。现有的值也可以使用update()方法进行更新。

注意:如果键-值对已经存在于字典中,则会更新值。否则,会添加字典的新键。

让我们看一个更新字典值的例子。

示例 – 1:

代码

# Creating an empty Dictionary     
Dict = {}     
print("Empty Dictionary: ")     
print(Dict)     

# Adding elements to dictionary one at a time     
Dict[0] = 'Peter'    
Dict[2] = 'Joseph'    
Dict[3] = 'Ricky'    
print("\nDictionary after adding 3 elements: ")     
print(Dict)     

# Adding set of values      
# with a single Key     
# The Emp_ages doesn't exist to dictionary    
Dict['Emp_ages'] = 20, 33, 24    
print("\nDictionary after adding 3 elements: ")     
print(Dict)     

# Updating existing Key's Value     
Dict[3] = 'JavaTpoint'    
print("\nUpdated key value: ")     
print(Dict)          

输出

Empty Dictionary: 
{}

Dictionary after adding 3 elements: 
{0: 'Peter', 2: 'Joseph', 3: 'Ricky'}

Dictionary after adding 3 elements: 
{0: 'Peter', 2: 'Joseph', 3: 'Ricky', 'Emp_ages': (20, 33, 24)}

Updated key value: 
{0: 'Peter', 2: 'Joseph', 3: 'JavaTpoint', 'Emp_ages': (20, 33, 24)}

示例 – 2:

代码

Employee = {"Name": "Dev", "Age": 20, "salary":45000,"Company":"WIPRO"}       
print(type(Employee))      
print("printing Employee data .... ")      
print(Employee)      
print("Enter the details of the new employee....");      
Employee["Name"] = input("Name: ");      
Employee["Age"] = int(input("Age: "));      
Employee["salary"] = int(input("Salary: "));      
Employee["Company"] = input("Company:");      
print("printing the new data");      
print(Employee)   

输出

<class 'dict'>
printing Employee data .... 
Employee = {"Name": "Dev", "Age": 20, "salary":45000,"Company":"WIPRO"} Enter the details of the new employee....
Name: Sunny
Age: 38
Salary: 39000
Company:Hcl
printing the new data
{'Name': 'Sunny', 'Age': 38, 'salary': 39000, 'Company': 'Hcl'}

使用del关键字删除元素

可以使用 del 关键字删除字典的元素,如下所示。

代码

Employee = {"Name": "David", "Age": 30, "salary":55000,"Company":"WIPRO"}       
print(type(Employee))      
print("printing Employee data .... ")      
print(Employee)      
print("Deleting some of the employee data")       
del Employee["Name"]      
del Employee["Company"]      
print("printing the modified information ")      
print(Employee)      
print("Deleting the dictionary: Employee");      
del Employee      
print("Lets try to print it again ");      
print(Employee)     

输出结果

<class 'dict'>
printing Employee data .... 
{'Name': 'David', 'Age': 30, 'salary': 55000, 'Company': 'WIPRO'}
Deleting some of the employee data
printing the modified information 
{'Age': 30, 'salary': 55000}
Deleting the dictionary: Employee
Lets try to print it again 
NameError: name 'Employee' is not defined.

上面代码中的最后一个print语句引发了错误,因为我们尝试打印已被删除的Employee字典。

使用pop()方法删除元素

字典是Python中的一组键值对。您可以使用这种无序的、可变的数据类型通过使用键来检索、插入和删除项目。pop()方法是从字典中删除元素的一种方式。在本文中,我们将讨论如何使用pop()方法从Python字典中删除项目。

使用pop()方法删除字典中特定键对应的值,并返回该值。仅需一个参数,即要删除的元素的键。pop()方法可通过以下方式使用:

代码

# Creating a Dictionary     
Dict1 = {1: 'JavaTpoint', 2: 'Educational', 3: 'Website'}     
# Deleting a key      
# using pop() method     
pop_key = Dict1.pop(2)     
print(Dict1)    

输出结果

{1: 'JavaTpoint', 3: 'Website'}

另外,Python还提供了内置函数popitem()和clear()用于删除字典项。与clear()方法不同的是,该方法会从字典中删除任意一个元素。

迭代字典

可以使用for循环来迭代字典,如下所示。

示例1

代码

# for loop to print all the keys of a dictionary  
Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"WIPRO"}      
for x in Employee:      
    print(x)     

输出

Name
Age
salary
Company

示例2

代码

#for loop to print all the values of the dictionary  
Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"WIPRO"} for x in Employee:      
 print(Employee[x])     

输出

John
29
25000
WIPRO

示例3

代码

#for loop to print the values of the dictionary by using values() method.  
Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"WIPRO"}      
for x in Employee.values():      
    print(x)     

输出

John
29
25000
WIPRO

示例4

代码

#for loop to print the items of the dictionary by using items() method  
Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"WIPRO"}     
for x in Employee.items():      
    print(x)    

输出

('Name', 'John')
('Age', 29)
('salary', 25000)
('Company', 'WIPRO')

字典键的属性

1. 在字典中,我们不能为同一个键存储多个值。如果我们为同一个键传递了多个值,那么最后被赋值的值将被视为该键的值。

考虑以下示例。

代码

Employee={"Name":"John","Age":29,"Salary":25000,"Company":"WIPRO","Name":  
"John"}      
for x,y in Employee.items():      
        print(x,y)         

输出

Name John
Age 29
Salary 25000
Company WIPRO

2. 关键字不能是Python中的任何可变对象。可以使用数字、字符串或元组作为关键字,但不能将可变对象(如列表)作为字典的关键字。

考虑以下示例。

代码

Employee = {"Name": "John", "Age": 29, "salary":26000,"Company":"WIPRO",[100,201,301]:"Department ID"}      
for x,y in Employee.items():      
    print(x,y)         

输出

Traceback (most recent call last):
  File "dictionary.py", line 1, in 
    Employee = {"Name": "John", "Age": 29, "salary":26000,"Company":"WIPRO",[100,201,301]:"Department ID"}
TypeError: unhashable type: 'list'

内置字典函数

函数是可以用于构造的方法,用于生成一个值。此外,构造不会被改变。Python的一些方法可以与Python字典结合使用。

下面列出了内置的Python字典方法,以及简要描述。

  • len()

通过len()函数返回字典的长度。对于每对键值对,字符串长度增加一。

代码

dict = {1: "Ayan", 2: "Bunny", 3: "Ram", 4: "Bheem"}
len(dict)

输出

4
  • any()

就像它在列表和元组中的工作方式一样,any()方法将确实返回True,如果一个字典键具有一个布尔表达式,该表达式评估为True。

代码

dict = {1: "Ayan", 2: "Bunny", 3: "Ram", 4: "Bheem"}
any({'':'','':'','3':''})

输出

True
  • all()

与any()方法不同,all()方法只有当字典的每个键包含True布尔值时,才返回True。

代码

dict = {1: "Ayan", 2: "Bunny", 3: "Ram", 4: "Bheem"}
all({1:'',2:'','':''})

输出

False
  • sorted()

就像对列表和元组一样,sorted()方法返回一个按字典键排序的有序序列。升序排序对原始的Python字典没有影响。

代码

dict = {7: "Ayan", 5: "Bunny", 8: "Ram", 1: "Bheem"}
sorted(dict)

输出

[ 1, 5, 7, 8]

内置字典方法

以下是内置的Python字典方法以及描述和代码。

  • clear()

它主要用于删除字典的所有项。

代码

# dictionary methods  
dict = {1: "Hcl", 2: "WIPRO", 3: "Facebook", 4: "Amazon", 5: "Flipkart"}  
# clear() method  
dict.clear()  
print(dict)  

输出

{ }
  • copy()

它返回一个创建的字典的浅拷贝。

代码

# dictionary methods  
dict = {1: "Hcl", 2: "WIPRO", 3: "Facebook", 4: "Amazon", 5: "Flipkart"}  
# copy() method  
dict_demo = dict.copy()  
print(dict_demo)  

输出

{1: 'Hcl', 2: 'WIPRO', 3: 'Facebook', 4: 'Amazon', 5: 'Flipkart'}
  • pop()

主要根据指定的键删除元素。

代码

# dictionary methods  
dict = {1: "Hcl", 2: "WIPRO", 3: "Facebook", 4: "Amazon", 5: "Flipkart"}  
# pop() method  
dict_demo = dict.copy()  
x = dict_demo.pop(1)  
print(x)  

输出

{2: 'WIPRO', 3: 'Facebook', 4: 'Amazon', 5: 'Flipkart'}

popitem()

移除最近添加的键值对

代码

# dictionary methods  
dict = {1: "Hcl", 2: "WIPRO", 3: "Facebook", 4: "Amazon", 5: "Flipkart"}  
# popitem() method  
dict_demo.popitem()  
print(dict_demo)  

输出

{1: 'Hcl', 2: 'WIPRO', 3: 'Facebook'}
  • keys()

它返回字典的所有键。

代码

# dictionary methods  
dict = {1: "Hcl", 2: "WIPRO", 3: "Facebook", 4: "Amazon", 5: "Flipkart"}  
# keys() method  
print(dict_demo.keys())  

输出

dict_keys([1, 2, 3, 4, 5])
  • items()

它以元组的形式返回所有的键值对。

代码

# dictionary methods  
dict = {1: "Hcl", 2: "WIPRO", 3: "Facebook", 4: "Amazon", 5: "Flipkart"}  
# items() method  
print(dict_demo.items())  

输出

dict_items([(1, 'Hcl'), (2, 'WIPRO'), (3, 'Facebook'), (4, 'Amazon'), (5, 'Flipkart')])
  • get()

它用于获取指定键的值。

代码

# dictionary methods  
dict = {1: "Hcl", 2: "WIPRO", 3: "Facebook", 4: "Amazon", 5: "Flipkart"}  
# get() method  
print(dict_demo.get(3))  

输出

Facebook
  • update()

主要通过将dict2的键值对添加到该字典中来更新所有字典。

代码

# dictionary methods  
dict = {1: "Hcl", 2: "WIPRO", 3: "Facebook", 4: "Amazon", 5: "Flipkart"}  
# update() method  
dict_demo.update({3: "TCS"})  
print(dict_demo)  

输出

{1: 'Hcl', 2: 'WIPRO', 3: 'TCS'}
  • values()

它根据给定的输入返回字典的所有值。

代码

# dictionary methods  
dict = {1: "Hcl", 2: "WIPRO", 3: "Facebook", 4: "Amazon", 5: "Flipkart"}  
# values() method  
print(dict_demo.values())  

输出

dict_values(['Hcl', 'WIPRO', 'TCS'])

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程