Python3推导式
推导式即是 Python 内置的非常简单却强大的可以用来创建集合的语法,比如我们要生成 [0x0, 1x1, 2x2, 3x3, ..., 10x10] 这样的一个 list,我们可以写个函数通过循环来实现,Python 语言提供了更高级的语法,我们不需要写函数,可以直接把语法写在推导式内部可以生成我们想要的集合。
我们可以用推导式生成 list,set,或 dict 集合,对于 tuple 是生成器(我们下节介绍)。
list 推导式
比如我们想生成一个 [0x0, 1x1, 2x2, 3x3, ..., 10x10] 的 list,我们可以写个 for 循环来实现。
mylist = [] for item in range(0, 11): mylist.append(item * item) print(mylist)
如果我们使用 list 推导式来实现以上需求,则只需要一句话,哥就问你装逼不装逼。
mylist = [item * item for item in range(0, 11)] print(mylist)
比如我们想把 ['Hello', "毛票票Python", 2, ["Ok"]
中是字符串类型的成员的变成大写字母,代码要短,我用推导式。
mylist = ["Hello", "毛票票Python", 2, ["Ok"]] myupperlist = [item.upper() if isinstance(item, str) else item for item in mylist] print(myupperlist) # ['HELLO', '毛票票PYTHON', 2, ['Ok']]
dict 推导式
我们知道使用中括号 [] 可以编写列表推导式,同样用大括号 {} 可以生成字典推导式。
mydict = {item: item * item for item in range(0, 11)} print(mydict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}
set 推导式
我们也可以用 set([]) 来作为集合推导式来生成 set。
myset = set([item * item for item in range(0, 11)]) print(myset) # {0, 1, 64, 4, 36, 100, 9, 16, 49, 81, 25}
本节重要知识点
会使用各种推导式,特别是 list 推导式。
要清楚推导式里面支持的语法。
评论列表