Python 推导式。带if条件的推导式

推导式是从一个或者多个迭代器快速简洁地创建数据结构的一种方法。它可以将循环和条件判断结合,从而避免语法冗长的代码。

 

##########  列表推导式  ##########
# 30 以内可以被 3 整除的整数
multiples = [i for i in range(30) if i % 3 == 0]
print(multiples)

# 过滤掉长度小于或等于3的字符串列表,并将剩下的转换成大写字母
names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
new_names = [name.upper() for name in names if len(name)>3]
print(new_names)


##########  字典推导式  ##########

listdemo = ['Google','Twitter', 'Alibaba', 'Python', 'VB', 'C']
newdict = {key:len(key) for key in listdemo}   # 将列表中各字符串值为键,各字符串的长度为值,组成键值对
print(newdict)

# 输出函数 xx+2x+5 [-5,5] 间的对应整数函数值
dic = {x: x**2 + 2*x + 5 for x in range(-5,6)}
print(dic)


##########  集合推导式  ##########
setnew = {i ** 2 for i in (1, 2, 3)}    # 计算数字 1,2,3 的平方数
print(setnew)

a = {x for x in 'abwq我njkkjdbbcfracadabra' if x not in 'abc'}    #  统计不是 abc 的字母
print(a)

元组推导式

a = (x for x in range(1,10))
 a
<generator object <genexpr> at 0x7faf6ee20a50>  # 返回的是生成器对象
 tuple(a)       # 使用 tuple() 函数,可以直接将生成器对象转换成元组
(1, 2, 3, 4, 5, 6, 7, 8, 9)

  

 

posted @ 2023-04-28 14:56  sangern  阅读(201)  评论(0)    收藏  举报