Python - Dictionary

Python | ShareTechnote

Python字典就像Python中的集合或列表一样,是一组不同的元素。字典与列表/数组的主要区别在于,它为每个元素分配一个特定的键。字典中的每个元素都指定为{'Key': Element}。

Python字典是一种内置的数据结构,用于存储键值对的集合。字典是可变的、无序的,并且允许根据键高效地检索、插入和删除元素。字典中的键必须是唯一且可哈希的,这意味着它们可以是整数、浮点数、字符串和元组(如果元组包含可哈希的元素)。与键关联的值可以是任何数据类型,包括其他字典或列表。

要创建一个字典,可以使用花括号{}并使用冒号分隔键和值,键值对之间用逗号分隔。可以使用空的花括号{}或dict()构造函数创建空字典。

字典的一些主要功能包括:
- 键值对:字典将数据存储为键值对,允许根据键有效地检索值。
- 无序:字典中的元素没有定义的顺序。但是,从Python 3.7开始,键值对的插入顺序作为实现细节保留,这在Python 3.10中成为语言特性。
- 可变:字典可以在创建后进行修改,允许您添加、删除或更新键值对。
- 可哈希键:字典的键必须是可哈希的,这意味着像列表和其他字典这样的可变类型不能用作键。
Python提供了各种内置方法来操作字典,例如:
- keys(): 返回显示字典中所有键的视图对象。
- values(): 返回显示字典中所有值的视图对象。
- items(): 返回以元组形式显示字典中所有键值对的视图对象。
- get(): 获取与给定键关联的值,如果键不存在,则返回默认值。
- update(): 从另一个字典或键值对的可迭代对象添加或更新键值对。
- pop(): 删除并返回与给定键关联的值,如果键不存在,则返回默认值。
- popitem(): 删除并返回最后插入的键值对作为元组。
- del: 从字典中删除基于其键的键值对。
- clear(): 从字典中删除所有键值对。
- len(): 返回字典中键值对的数量。
- in: 检查键是否存在于字典中。
- copy(): 返回字典的浅拷贝。

数组、集合和字典都是Python中的数据结构集合,但在属性和使用场景上有一些关键区别。以下是它们之间的主要区别的摘要:

数组:
- 数组是固定大小的、可变的、有序的元素集合,通常具有相同的数据类型。
- 可以通过索引访问和修改元素,实现快速高效的随机访问。
- 数组不是Python中的内置数据结构,但可以通过array模块或其他库(如NumPy)使用。
- 适用场景:数组适用于需要存储和操作相同数据类型的元素的情况,特别是在处理大量数值数据或需要对数据执行数学运算时。

集合:
- 集合是无序的、唯一的、可哈希的元素集合。
- 集合不允许重复元素,不支持索引或切片。
- 集合是可变的,可以在创建后添加或删除元素。
- 集合是Python中的内置数据结构,可以使用set()构造函数或花括号{}创建。
- 适用场景:集合适用于需要存储唯一元素、执行成员测试或执行数学集合操作(如并集、交集和差集)的情况。

字典:
- 字典以无序的方式存储键值对集合。
- 键必须是唯一的且可哈希的,而值可以是任何数据类型。
- 字典是可变的,并且可以在创建后添加、删除或更新键值对。
- 字典是Python中的内置数据结构,可以使用花括号{}或dict()构造函数创建。
- 适用场景:字典适用于需要根据键存储和操作数据的情况,例如存储配置设置、计算单词频率或实现缓存机制。

示例:
以下是一些示例,展示了字典的各种用法和操作:

注意:本页面中的所有示例都是用Python 3.x编写的。如果您使用的是Python 2.x,则可能无法正常工作。
注意:本页面中的所有示例假定都是在Windows 7上编写/运行的,除非特别指出。您可能需要根据操作系统进行一些语法调整。

< Example 1 >

 

fruits = {1:"Apple",2:"BlueBerry",3:"Banana",4:"SrawBerry"}

print(fruits)

 

Result :----------------------------------

 

{1: 'Apple', 2: 'BlueBerry', 3: 'Banana', 4: 'SrawBerry'}

 

 

 

< Example 2 >

 

Food = {'Fruit':'Apple','Grain':'Rice','Vegetable':'Cabbage'}

print(Food)

 

Result :----------------------------------

 

{'Fruit': 'Apple', 'Grain': 'Rice', 'Vegetable': 'Cabbage'}

 

 

< Example 3 >

 

fruits = {100:"Apple",200:"BlueBerry",300:"Banana",400:"SrawBerry"}

print(fruits[200])

 

Result :----------------------------------

 

BlueBerry

 

 

< Example 4 >

 

Food = {'Fruit':'Apple','Grain':'Rice','Vegetable':'Cabbage'}

print(Food['Vegetable'])

 

Result :----------------------------------

 

Cabbage

 

NOTE : Try print(Food['Cabbage']) and see what you get. It will give you an error since 'Cabbage' is not a Key. it is an element.

 

 

< Example 5 >

 

Food = {'Fruit':'Apple','Grain':'Rice','Vegetable':'Cabbage'}

 

print('================')

for f in Food :

    print(f)

 

print('================')

foods = list(Food.items())

for F in foods :

    print(F)

 

print('================')

k = list(Food.keys())

 

for i in range(0,len(k)) :

    print(Food[k[i]])

 

print('================')

k = list(Food.keys())

 

for ki in k :

    print(ki,',',Food[ki])

 

Result :----------------------------------

 

================   <-- for f in Food :

Fruit

Grain

Vegetable

================   <-- for F in foods :

('Fruit', 'Apple')

('Grain', 'Rice')

('Vegetable', 'Cabbage')

================   <-- for i in range(0,len(k)) :

Apple

Rice

Cabbage

================   <-- for ki in k :

Fruit , Apple

Grain , Rice

Vegetable , Cabbage

 

 

 

< Example 6 >

 

Food = {'Fruit':'Apple','Grain':'Rice','Vegetable':'Cabbage'}

 

print('================')

foods = list(Food.items())

for f in foods :

    print(f)

 

Food['Fruit'] = 'Grape'

 

print('================')

foods = list(Food.items())

for f in foods :

    print(f)

 

 

Result :----------------------------------

 

================  <-- Original Dictionary

('Fruit', 'Apple')

('Grain', 'Rice')

('Vegetable', 'Cabbage')

================  <-- Dictionary After Change

('Fruit', 'Grape')

('Grain', 'Rice')

('Vegetable', 'Cabbage')

 

 

< Example 7 >

 

Food = {'Fruit':'Apple','Grain':'Rice','Vegetable':'Cabbage'}

 

print('================')

foods = list(Food.items())

for f in foods :

    print(f)

 

Food.update({'Noodle':'Pasta'})

 

print('================')

foods = list(Food.items())

for f in foods :

    print(f)

 

Result :----------------------------------

 

================    <-- Original Dictionary

('Fruit', 'Apple')

('Grain', 'Rice')

('Vegetable', 'Cabbage')

================    <-- Dictionary After Change

('Fruit', 'Apple')

('Grain', 'Rice')

('Vegetable', 'Cabbage')

('Noodle', 'Pasta')

 

 

< Example 8 >

 

Food = {'Fruit':'Apple','Grain':'Rice','Vegetable':'Cabbage'}

 

print('================')

foods = list(Food.items())

for f in foods :

    print(f)

 

Food.update({'Fruit':'Grape','Noodle':'Pasta'})

 

print('================')

foods = list(Food.items())

for f in foods :

    print(f)

 

Result :----------------------------------

 

================      <-- Original Dictionary

('Fruit', 'Apple')

('Grain', 'Rice')

('Vegetable', 'Cabbage')

================      <-- Dictionary After Change

('Fruit', 'Grape')    // This is replaced

('Grain', 'Rice')

('Vegetable', 'Cabbage')

('Noodle', 'Pasta')   // This is added

 

 

 

 

 

 

 

 

 

< Example 9 >

 

Food = {'Fruit':'Apple','Grain':'Rice','Vegetable':'Cabbage'}

 

print('================')

foods = list(Food.items())

for f in foods :

    print(f)

 

del Food['Fruit']

 

print('================')

foods = list(Food.items())

for f in foods :

    print(f)

 

 

Result :----------------------------------

 

================        <-- Original Dictionary

('Fruit', 'Apple')

('Grain', 'Rice')

('Vegetable', 'Cabbage')

================        <-- Dictionary After removing an element

('Grain', 'Rice')

('Vegetable', 'Cabbage')

 

 

 

< Example 10 >

 

你可能感兴趣的:(python,开发语言)