推导式创建序列

推导式创建序列

1.列表推导式

列表推导式生成列表对象,语法:
【表达式 for item in 可迭代对象】
或 【for item in 可迭代对象 if 条件判断】

y = [x * 2 for x in range(1, 5)]
print(y)
#输出:[2, 4, 6, 8]

# 循环
y = []
for x in range(1, 5):
    y.append(x * 2)
print(y)
#输出:[2, 4, 6, 8]

# 附加条件,if
y = [x * 2 for x in range(1, 50) if x % 5 == 0]  # 被5整除
print(y)
#输出:[10, 20, 30, 40, 50, 60, 70, 80, 90]

y = []
for x in range(1, 50):
    if x % 5 == 0: y.append(x * 2)
print(y)
#输出:
[10, 20, 30, 40, 50, 60, 70, 80, 90]

# 两个循环
cells = [(row, col) for row in range(1, 4) for col in range(1, 4)]
print(cells)
#输出:[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
2.字典推导式

格式:
{key_expression: value_expression for 表达式 in 可迭代对象}
类似列表推导式,字典推导式也可以增加if条件判断、多个for循环

# 统计文本中字符出现的次数:
my_text = "I love you, I love sxt"
char_count = {c: my_text.count(c)  for c in my_text}
# c: my_text.count(c)————>key:value
print(char_count)
#输出:{'I': 2, ' ': 5, 'l': 2, 'o': 3, 'v': 2, 'e': 2, 'y': 1, 'u': 1, ',': 1, 's': 1, 'x': 1, 't': 1}

print("****************************************")
#普通循环
s = 'I love you'
for v in set(s):
    print(v, s.count(v), end="*")
#输出:o 2*u 1*v 1*e 1*y 1*  2*I 1*l 1*

print("****************************************")

e = 'I love you'
for o in set(e):
  print("字母:{0},出现次数{1}".format(o, e.count(o), ))
#输出:
字母:y,出现次数1
字母:o,出现次数2
字母:l,出现次数1
字母:u,出现次数1
字母:I,出现次数1
字母: ,出现次数2
字母:e,出现次数1
字母:v,出现次数1
3.集合推导式

集合只有key,没有value
{表达式 for item in 可迭代对象}

{表达式 for item in 可迭代对象 if 条件判断}

b = {x for x in range(1, 100) if x % 9 == 0}
print(b)
#输出:{99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}
4.生成器推导式(生成元组)

一个生成器只能运行一次,第一次 迭代可以得到数据,第二次迭代发现数据已经没有了。

gnt = (x for x in range(4))
print(gnt)
#输出:<generator object <genexpr> at 0x0000029C15B0D148>
print(tuple(gnt)) #tuple生成元组
#输出:(0, 1, 2, 3)
print(tuple(gnt))  # gnt是生成器对象,生成器是可迭代的对象,只能使用一次
#输出:为空
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值