python列表推导式 与循环
时间: 2023-12-12 19:34:23 浏览: 79
Python列表推导式是一种简洁的语法,用于从一个可迭代对象中创建一个新的列表。它可以替代常规的for循环和if语句,使代码更加简洁易读。下面是一个使用列表推导式和for循环来创建一个新列表的例子:
```python
# 使用for循环创建新列表
old_list = [1, 2, 3, 4, 5]
new_list = []
for i in old_list:
if i % 2 == 0:
new_list.append(i * 2)
print(new_list) # 输出:[4, 8]
# 使用列表推导式创建新列表
old_list = [1, 2, 3, 4, 5]
new_list = [i * 2 for i in old_list if i % 2 == 0]
print(new_list) # 输出:[4, 8]
```
在上面的例子中,我们使用for循环和if语句来创建一个新列表,其中包含原始列表中所有偶数的两倍。然后,我们使用列表推导式来完成相同的任务。可以看到,使用列表推导式可以使代码更加简洁易读。
相关问题
python列表推导式替换双重循环
Python列表推导式可以用来替换双重循环,可以使代码更加简洁易懂。下面是两个例子:
1.使用zip()函数将三个列表中的元素一一对应,生成一个新的元组列表:
```python
list_1 = [1, 2, 3]
list_2 = [4, 5, 6]
list_3 = [7, 8, 9]
new_list = [(i, j, k) for i, j, k in zip(list_1, list_2, list_3)]
print(new_list) # 输出:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
```
2.将一个二维列表中的所有元素提取出来,生成一个新的一维列表:
```python
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
output = [element for each_list in data for element in each_list]
print(output) # 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
```
python列表推导式可以用双循环吗
可以的,Python列表推导式支持多层循环,也就是嵌套循环。例如,下面这个例子展示了如何使用两层循环创建一个包含所有组合的列表:
```
list1 = [(x, y) for x in range(1,3) for y in range(3,5)]
print(list1)
# 输出结果为:[(1, 3), (1, 4), (2, 3), (2, 4)]
```
在这个例子中,我们使用了两个for循环,第一个循环用于遍历1到2之间的数字,第二个循环用于遍历3到4之间的数字。我们使用了括号将每个组合包裹起来,并将它们放在列表中。最终,我们得到了一个包含4个元素的列表。
阅读全文