当前位置:实例文章 » HTML/CSS实例» [文章]Python入门【生成器推导式创建元组、字典、字典元素添加、修改、删除、序列解包、字典核心底层原理、集合 】(六)

Python入门【生成器推导式创建元组、字典、字典元素添加、修改、删除、序列解包、字典核心底层原理、集合 】(六)

发布人:shili8 发布时间:2025-02-15 01:02 阅读次数:0

**Python 入门:生成器、推导式、元组、字典、集合**

在 Python 中,生成器(Generator)、推导式(Comprehension)和元组(Tuple)、字典(Dictionary)以及集合(Set)是非常重要的数据结构。它们可以帮助我们简化代码,提高效率。

**1.生成器**

生成器是一种特殊类型的函数,它可以产生序列,而不需要一次性将所有元素都计算出来。这使得它特别适合处理大型数据集。

###例子:

def fibonacci(n):
 a, b =0,1 for _ in range(n):
 yield a a, b = b, a + bfib_gen = fibonacci(10)
for num in fib_gen:
 print(num)


在这个例子中,我们定义了一个函数 `fibonacci`,它使用生成器来产生斐波那契数列。我们可以通过迭代器(Iterator)来访问这些数字。

###说明:

* `yield` 关键字用于将值返回给调用者,而不是像普通函数那样直接返回。
*生成器在每次被请求时都会计算下一个值,这使得它特别适合处理大型数据集。

**2. 推导式**

推导式是一种紧凑的语法结构,用于创建序列(如列表、元组或集合)或字典。它可以帮助我们简化代码,使其更易读和理解。

###例子:

# 创建一个列表numbers = [x for x in range(10)]
print(numbers) # [0,1,2,3,4,5,6,7,8,9]

# 创建一个元组fruits = ('apple', 'banana', 'cherry')
print(fruits) # ('apple', 'banana', 'cherry')

# 创建一个集合colors = {x for x in ['red', 'green', 'blue', 'yellow']}
print(colors) # {'red', 'green', 'blue', 'yellow'}


在这个例子中,我们使用推导式来创建列表、元组和集合。

###说明:

* 推导式的语法结构是 `expression for variable in iterable`,其中 `expression` 是要被计算的值, `variable` 是用于临时存储值的变量, `iterable` 是可迭代对象。
* 推导式可以用于创建各种类型的序列和字典。

**3. 元组**

元组是不可修改的序列,它们在 Python 中非常有用。它们可以帮助我们简化代码,使其更易读和理解。

###例子:

# 创建一个元组person = ('John', 'Doe',30)
print(person) # ('John', 'Doe',30)

# 访问元组中的元素print(person[0]) # Johnprint(person[1]) # Doeprint(person[2]) #30# 修改元组中的元素(不可以)
try:
 person[0] = 'Jane'
except TypeError as e:
 print(e) # 'tuple' object does not support item assignment


在这个例子中,我们创建了一个元组,并尝试访问和修改其中的元素。

###说明:

* 元组是不可修改的序列,它们使用圆括号 `()` 来表示。
* 元组中的元素可以通过索引来访问,但不能修改。

**4. 字典**

字典是可修改的无序集合,它们在 Python 中非常有用。它们可以帮助我们简化代码,使其更易读和理解。

###例子:

# 创建一个字典person = {'name': 'John', 'age':30}
print(person) # {'name': 'John', 'age':30}

# 访问字典中的元素print(person['name']) # Johnprint(person['age']) #30# 修改字典中的元素person['age'] =31print(person) # {'name': 'John', 'age':31}


在这个例子中,我们创建了一个字典,并尝试访问和修改其中的元素。

###说明:

* 字典是可修改的无序集合,它们使用花括号 `{}` 来表示。
* 字典中的元素可以通过键来访问和修改。

**5. 序列解包**

序列解包是一种语法结构,用于将序列(如列表、元组或字符串)分解为多个变量。它可以帮助我们简化代码,使其更易读和理解。

###例子:

# 创建一个元组person = ('John', 'Doe',30)
print(person) # ('John', 'Doe',30)

# 使用序列解包来访问元组中的元素name, surname, age = personprint(name) # Johnprint(surname) # Doeprint(age) #30


在这个例子中,我们使用序列解包来访问元组中的元素。

###说明:

* 序列解包的语法结构是 `variable1, variable2, ... = iterable`,其中 `variable1`, `variable2`, 等是用于临时存储值的变量, `iterable` 是可迭代对象。
* 序列解包可以用于将序列分解为多个变量。

**6. 字典核心底层原理**

字典在 Python 中使用哈希表(Hash Table)作为其底层数据结构。哈希表是一种高效的查找和存储键值对的数据结构。

###例子:

# 创建一个字典person = {'name': 'John', 'age':30}
print(person) # {'name': 'John', 'age':30}

# 使用哈希表来访问字典中的元素key = 'name'
value = person[key]
print(value) # John# 使用哈希表来修改字典中的元素person['age'] =31print(person) # {'name': 'John', 'age':31}


在这个例子中,我们使用哈希表来访问和修改字典中的元素。

###说明:

* 哈希表是一种高效的查找和存储键值对的数据结构。
* 字典在 Python 中使用哈希表作为其底层数据结构。

**7. 集合**

集合是无序且不重复的集合,它们在 Python 中非常有用。它们可以帮助我们简化代码,使其更易读和理解。

###例子:

# 创建一个集合colors = {'red', 'green', 'blue'}
print(colors) # {'red', 'green', 'blue'}

# 访问集合中的元素print('red' in colors) # Trueprint('yellow' in colors) # False# 修改集合中的元素(不可以)
try:
 colors.add('yellow')
except TypeError as e:
 print(e) # 'add()' requires1 positional argument(s), but2 were given


在这个例子中,我们创建了一个集合,并尝试访问和修改其中的元素。

###说明:

* 集合是无序且不重复的集合,它们使用花括号 `{}` 来表示。
* 集合中的元素可以通过 `in` 关键字来访问,但不能修改。

其他信息

其他资源

Top