python3 利用生成器生成元组
一. 简介
在 Python 中,并没有直接的“元组推导式”(Tuple Comprehensions)。Python 提供了列表推导式、字典推导式和集合推导式,但并没有为元组提供类似的语法糖。这是因为元组是不可变的数据类型,而推导式的目的是生成新的数据结构,这与元组的不可变性有些冲突。
本文简单学习一下,通过生成器生成元组。
二. python3 中的使用生成器生成元组
1. 语法格式
生成器中语法格式如下:
(expression for item in iterable)
或者
(expression for item in iterable if condition)
exppression: 是对 item 执行的操作或表达式。
item: 是迭代变量,代表 iterable中的每个元素。
iterable: 可以是列表,字典,集合。
if condition: 可选的条件判断,只有满足条件的元素才会被包含在新的元组中。
2. 示例
使用生成器生成元组:
#!/usr/bin/env python3
a = (x**2 for x in range(1, 10))
print(tuple(a))
输出如下:
(1, 4, 9, 16, 25, 36, 49, 64, 81)
带 if condition条件判断,使用生成器生成元组:
#!/usr/bin/env python3
a = (x**2 for x in range(1, 20) if x % 2 == 0)
print(tuple(a))
输出如下:
(4, 16, 36, 64, 100, 144, 196, 256, 324)