Python 字典
字典是一种在Python中存储数据的有用数据结构,因为它们能够模拟现实世界数据的排列,其中给定键存在一个特定的值。
使用Python字典,数据以键值对的形式存储。
- 这种数据结构是可变的。
- 字典的组成部分使用键和值构建。
- 键只能有一个组成部分。
- 值可以是任何类型,包括整数、列表和元组。
换句话说,字典是一组键值对,其中值可以是任何Python对象。相反,键是不可变的Python对象,如字符串、元组或数字。字典条目在Python 3.7及更高版本中是有序的。在Python 3.6及之前的版本中,字典一般是无序的。
创建字典
大括号是生成Python字典的最简单方法,虽然也有其他方法。用大括号将多个键值对括起来,用冒号将每个键与其值分隔开,就可以构建字典。(:)。以下是定义字典的语法。
语法:
Dict = {"Name": "Gayle", "Age": 25}
在上述的字典 Dict 中,键 Name 和 Age 是属于不可变对象的字符串。
让我们来看一个创建字典并打印其内容的示例。
代码
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'])