在Python中,推导式(comprehension)是一种简洁而强大的语法,用于快速创建列表、集合和字典等数据结构。它们允许您在一行代码中使用迭代和条件逻辑来创建和转换数据。
Python中有三种常见的推导式:列表推导式(list comprehension)、集合推导式(set comprehension)和字典推导式(dictionary comprehension)。
**1. 列表推导式:**
列表推导式允许您从一个可迭代对象创建一个新的列表。它的基本语法是使用方括号(`[]`)来包裹一个表达式和一个可迭代对象,并在表达式中使用迭代变量。下面是一个示例:
“`python
numbers = [1, 2, 3, 4, 5]
squared_numbers = [x ** 2 for x in numbers]
print(squared_numbers)
“`
输出结果为:
“`
[1, 4, 9, 16, 25]
“`
您可以在列表推导式中添加条件来过滤元素。例如,只选择偶数进行平方操作:
“`python
numbers = [1, 2, 3, 4, 5]
squared_even_numbers = [x ** 2 for x in numbers if x % 2 == 0]
print(squared_even_numbers)
“`
输出结果为:
“`
[4, 16]
“`
**2. 集合推导式:**
集合推导式与列表推导式的语法类似,只是使用花括号(`{}`)来包裹表达式和可迭代对象。它用于创建新的集合。下面是一个示例:
“`python
numbers = [1, 2, 3, 4, 5, 5, 4, 3, 2, 1]
unique_numbers = {x for x in numbers}
print(unique_numbers)
“`
输出结果为:
“`
{1, 2, 3, 4, 5}
“`
**3. 字典推导式:**
字典推导式允许您使用迭代来创建一个新的字典。它的语法是使用花括号(`{}`)包裹一个键值对表达式,并在表达式中使用迭代变量来定义键和值。下面是一个示例:
“`python
numbers = [1, 2, 3, 4, 5]
squared_dict = {x: x ** 2 for x in numbers}
print(squared_dict)
“`
输出结果为:
“`
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
“`
您也可以在字典推导式中添加条件来过滤键值对。例如,只选择偶数进行平方操作:
“`python
numbers = [1, 2, 3, 4, 5]
squared_even_dict = {x: x ** 2 for x in numbers if x % 2 == 0}
print(squared_even_dict)
“`
输出结果为:
“`
{
当谈到Python推导式时,有许多实例可以帮助说明它们的用法和功能。以下是几个示例:
**1. 列表推导式实例:**
“`python
# 生成一个包含0到9的平方数的列表
squared_numbers = [x**2 for x in range(10)]
print(squared_numbers)
# 过滤列表中的奇数
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = [x for x in numbers if x % 2 == 0]
print(even_numbers)
# 将字符串列表转换为大写
words = [‘hello’, ‘world’, ‘python’]
uppercase_words = [word.upper() for word in words]
print(uppercase_words)
“`
输出结果:
“`
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[2, 4, 6, 8, 10]
[‘HELLO’, ‘WORLD’, ‘PYTHON’]
“`
**2. 集合推导式实例:**
“`python
# 从字符串中获取唯一的字母集合
sentence = “the quick brown fox jumps over the lazy dog”
unique_letters = {letter for letter in sentence if letter.isalpha()}
print(unique_letters)
# 生成一个包含1到10的平方数的集合
squared_numbers = {x**2 for x in range(1, 11)}
print(squared_numbers)
“`
输出结果:
“`
{‘d’, ‘z’, ‘f’, ‘n’, ‘q’, ‘i’, ‘u’, ‘k’, ‘b’, ‘o’, ‘v’, ‘r’, ‘p’, ‘g’, ‘s’, ‘e’, ‘m’, ‘h’, ‘x’, ‘c’, ‘t’, ‘j’, ‘w’, ‘a’, ‘l’, ‘y’}
{64, 1, 4, 36, 100, 9, 16, 49, 81, 25}
“`
**3. 字典推导式实例:**
“`python
# 创建一个字典,将字符串映射到它们的长度
words = [‘apple’, ‘banana’, ‘cherry’, ‘date’]
word_lengths = {word: len(word) for word in words}
print(word_lengths)
# 创建一个字典,将列表中的元素映射到它们的平方
numbers = [1, 2, 3, 4, 5]
squared_dict = {num: num**2 for num in numbers}
print(squared_dict)
“`
输出结果:
“`
{‘apple’: 5, ‘banana’: 6, ‘cherry’: 6, ‘date’: 4}
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
“`
这些示例展示了使用推导式来快速创建、过滤和转换数据的能力。通过利用推导式的简洁语法,您可以在一行代码中完成许多常见的数据处理任务。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
ERC-165这个标准用于发布和检测智能合约实现了哪些接口。 当我们需要和一个合约进行交互时,可能并不清楚他是否实现了某些合约例如”ERC20ERC721″等。所以可以先通过Erc165进行查询(该合约必须实现ERC165),就可以避免很多交互的问题。 ERC…