尿素
Python 列表推导
列表理解
当您想要根据现有列表的值创建新列表时,列表推导提供了更短的语法。
例子:
根据水果列表,您需要一个新列表,其中仅包含名称中带有字母“a”的水果。
如果没有列表推导,你将不得不写一个 for
带有条件测试的语句:
例子
水果 = [“苹果”、“香蕉”、“樱桃”、“猕猴桃”、“芒果”]
新列表 = []
对于水果中的 x:
如果 x 中存在 "a":
newlist.附加(x)
打印(新列表)
亲自尝试 »
使用列表推导式,你只用一行代码就可以完成所有这些操作:
例子
水果 = [“苹果”、“香蕉”、“樱桃”、“猕猴桃”、“芒果”]
newlist = [x for x in fruit if "a" in x]
打印(新列表)
亲自尝试 »
语法
新列表 = [表达 为了物品 在可迭代 如果状况 == 真]
返回值是一个新的列表,旧列表保持不变。
健康)状况
这 状况 就像一个过滤器,只接受那些值True
.
例子
仅接受非“苹果”物品:
newlist = [x for x in fruit if x != "apple"]
亲自尝试 »
条件 如果 x != “苹果” 将返回True
对于除“苹果”之外的所有元素,使得新列表包含除“苹果”之外的所有水果。
这 状况 是可选的,可以省略:
例子
没有 if
陈述:
newlist = [x 代表水果中的 x]
亲自尝试 »
可迭代
这 可迭代 可以是任何可迭代对象,如列表、元组、集合等。
例子
您可以使用 range()
函数创建可迭代对象:
newlist = [x 为 x 在范围内(10)]
亲自尝试 »
相同示例,但有一个条件:
例子
仅接受小于 5 的数字:
newlist = [x for x in range(10) 如果 x < 5]
亲自尝试 »
表达
这 表达 是迭代中的当前项,但它也是结果,您可以在它最终成为新列表中的列表项之前对其进行操作:
例子
将新列表中的值设置为大写:
newlist = [x.upper() for x in fruit]
亲自尝试 »
你可以将结果设置为你喜欢的任何内容:
例子
将新列表中的所有值设置为“hello”:
newlist = ['hello' for x in fruit]
亲自尝试 »
这 表达 也可以包含条件,不像过滤器,而是作为操纵结果的一种方式:
例子
返回“orange”而不是“banana”:
newlist = [x if x != "香蕉" else "橙子" for x in 水果]
亲自尝试 »
这 表达 在上面的例子中:
“如果物品不是香蕉,则退回该物品,如果是香蕉,则退回橙子”。