我们可以使用给定的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