首页 » 编程 » Python » 正文

列表生成式(列表解析)

day24


往一个列表里装入100个鸡蛋

# 传统方式
eggs_list = []
for i in range(100):
    eggs_list.append("egg%s" % i)
print(eggs_list)

运行结果:

['egg0', 'egg1', 'egg2', 'egg3', 'egg4', 'egg5', 'egg6', 'egg7', 'egg8', 'egg9', 'egg10', 'egg11', 'egg12', 'egg13', 'egg14', 'egg15', 'egg16', 'egg17', 'egg18', 'egg19']


# 列表生成式方式
l = ["agg%s" % i for i in range(100)]
print(l)

运行结果:

['agg0', 'agg1', 'agg2', 'agg3', 'agg4', 'agg5', 'agg6', 'agg7', 'agg8', 'agg9', 'agg10', 'agg11', 'agg12', 'agg13', 'agg14', 'agg15', 'agg16', 'agg17', 'agg18', 'agg19']


# 加入条件
l2 = ["agg%s" % i for i in range(20) if i > 12]  # 如果i>50 执行左边的代码
print(l2)

运行结果:

['agg13', 'agg14', 'agg15', 'agg16', 'agg17', 'agg18', 'agg19']


把列表与字符串进行拼接

l = [1, 2, 3, 4]
s = "hello"

# 传统方式
res_list = []
for i in l:
    for j in s:
        res_list.append([i, j])
print(res_list)

运行结果:

[[1, 'c'], [1, 'a'], [1, 'r'], [2, 'c'], [2, 'a'], [2, 'r'], [3, 'c'], [3, 'a'], [3, 'r'], [4, 'c'], [4, 'a'], [4, 'r']]



# 列表生成式方式
lis = [[i, j] for i in l for j in s]
print(lis)

运行结果:

[[1, 'c'], [1, 'a'], [1, 'r'], [2, 'c'], [2, 'a'], [2, 'r'], [3, 'c'], [3, 'a'], [3, 'r'], [4, 'c'], [4, 'a'], [4, 'r']]



# 加上判断条件
lis2 = [[i, j] for i in l if i > 2 for j in s]  
print(lis2)

运行结果:

[[3, 'c'], [3, 'a'], [3, 'r'], [4, 'c'], [4, 'a'], [4, 'r']]


发表评论

*