Python 中的一行中的 for 循环
本教程将介绍在 Python 中实现一行 for
循环的各种方法。在 Python 中,一行 for
循环有多种形式;一个简单的 for
循环可以遍历可迭代对象或序列。另一个可以是简单的列表推导,也可以是带有 if ... else
语句的列表推导。
Python 中的简单一行 for
循环
简单的单行 for
循环就是 for
循环,它循环遍历一个序列或一个可迭代的对象。因此,我们可以将可迭代对象与 for
循环或 range()
函数一起使用。可迭代对象可以是列表,数组,集合或字典。
下面的示例代码演示了如何实现一行 for
循环来迭代 Python 的可迭代对象。
myset = {'a','b','c','d','e','f','g'}
mydict = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7}
for x in myset:
print(x)
for key, val in mydict.items():
print(key,val)
range(start, stop, step)
函数返回一个序列,该序列从 start
值开始,以 stop
值结束,步长等于 step
。
下面的示例代码演示了如何使用 range()
函数在 Python 中实现一行 for
循环。
for x in range(1,99):
#do something
在 Python 中使用单行 for
循环进行列表推导
列表推导是一种以多种编程语言(包括 Python)从现有列表创建新列表的语法方法。我们可以对列表的每个元素应用任何操作,并使用简单的列表推导来创建新列表。
下面的示例代码演示了如何在 Python 中使用单行 for
循环来实现列表推导。下面的代码通过采用现有列表中每个元素的平方来创建一个新列表。
mylist = [6,2,8,3,1]
newlist = [x**2 for x in mylist]
print(newlist)
输出:
[36, 4, 64, 9, 1]
在 Python 中使用 if ... else
语句使用单行 for
循环进行列表推导
带有 if ... else
语句的列表推导用于对现有列表的某些特定元素应用操作以创建新列表,或从现有列表中过滤元素以创建新列表。
下面的示例代码演示了如何使用 for
循环在 Python 中使用 if
语句和 if...else
语句来实现列表推导。
下面的示例代码如果是奇数,则将元素添加到新列表中,如果是偶数,则将其丢弃。
mylist = [1,4,5,8,9,11,13,12]
newlist = [x for x in mylist if x%2 == 1]
print(newlist)
输出:
[1, 5, 9, 11, 13]
下面的示例代码使用一行 if ... else
列表推导,将奇数元素添加为 1
,将奇数元素转换为偶数,并将偶数元素添加到列表,而无需对其进行任何操作,结果,我们得到一个新的偶数列表。
mylist = [1,4,5,8,9,11,13,12]
newlist = [x+1 if x%2 == 1 else x for x in mylist]
print(newlist)
输出:
[2, 4, 6, 8, 10, 12, 14, 12]