Python的理解

我们可以使用给定的python序列创建新序列。这称为理解。基本上,这是一种编写简洁代码块以生成序列的方法,该序列可以是列表,字典,集合或通过使用另一个序列生成器。它可能涉及不同类型序列之间的转换的多个步骤。

列表理解

在这种方法中,我们通过操纵现有列表的值来创建新列表。在下面的示例中,我们获取一个列表并通过在给定列表的每个元素上添加3来创建一个新列表。

示例

given_list = [x for x in range(5)]
print(given_list)

new_list = [var+3 for var in given_list]

print(new_list)

输出结果

运行上面的代码给我们以下结果-

[0, 1, 2, 3, 4]
[3, 4, 5, 6, 7]

字典理解

与上述类似,我们可以获取一个列表并从中创建字典。

示例

given_list = [x for x in range(5)]
print(given_list)

#new_list = [var+3 for var in given_list]
new_dict = {var:var + 3 for var in given_list }

print(new_dict)

输出结果

运行上面的代码给我们以下结果-

[0, 1, 2, 3, 4]
{0: 3, 1: 4, 2: 5, 3: 6, 4: 7}

我们还可以接受两个列表,然后从中创建一个新字典。

示例

list1 = [x for x in range(5)]
list2 = ['Mon','Tue','Wed','Thu','Fri']
print(list1)
print(list2)

new_dict ={key:value for (key, value) in zip(list1, list2)}

print(new_dict)

输出结果

运行上面的代码给我们以下结果-

[0, 1, 2, 3, 4]
['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
{0: 'Mon', 1: 'Tue', 2: 'Wed', 3: 'Thu', 4: 'Fri'}

设定理解

我们可以采用与上述类似的方法,并从现有集合或列表中创建新集合。在下面的示例中,我们通过将3添加到现有集合的元素中来创建一个新集合。

示例

given_set = {x for x in range(5)}
print(given_set)

new_set = {var+3 for var in given_set}

print(new_set)

输出结果

运行上面的代码给我们以下结果-

{0, 1, 2, 3, 4}
{3, 4, 5, 6, 7}

发电机理解

可以从现有列表中创建新的生成器。这些生成器具有内存效率,因为它们在生成项目时分配内存,而不是在开始时分配内存。

示例

given_list = [x for x in range(5)]
print(given_list)

new_set = (var+3 for var in given_list)

for var1 in new_set:
   print(var1, end=" ")

输出结果

运行上面的代码给我们以下结果-

[0, 1, 2, 3, 4]
3 4 5 6 7