Pythonic改写循环语句

本文介绍了Python编程中的几种重要操作:列表推导式、映射函数、过滤操作和归约函数。通过示例展示了如何使用这些功能创建和操作数据结构,包括使用`lambda`表达式进行匿名函数操作。此外,还探讨了如何使用`sum`函数合并列表,以及递归实现扁平化列表的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

task = []
for i in range(10):
    task.append(i**2)
#list
task = [i**2 for i in range(10)]
#map印射
task = list(map(lambda x: x**2, range(10)))
# map (None,[1,2,3],[4,5,6],[7,8,9,10]
#filter筛选
task = filter(lambda x:1<x<10,[-2,-1,0,1,2])
#reduce
from functools import reduce
task = reduce(lambda x, y: x+y, [1,2,3,4,5])

#分析从外到内,化繁为简
#示例2
task = []
for i in range(10):
    season = i      #>>>>>>>>>>>>>>>>>>>>>>>>
    for j in range(5):
        team = j
        task.append((j, i, season, team))
print(task)

def func(i):
    # season = i # >>>>>>>>>>>>>>>>>>>>>>>>>>>func2内不存在i
    # return list(map(lambda x: func2(i,x), range(5)))
    return [func2(i,j) for j in range(5)]
def func2(i, j): # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>实际返回两个变量
    team = j
    season = i
    return j, i, season, team
task = [func(i) for i in range(10)]
print(sum(task,[]))

# 使用sum
list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]]
list_2 = sum(list_1, [])
print(list_2)

# 只可以使用递归(这个有不有办法改写为Pythonic???)
def flat(nums):
    res = []
    for i in nums:
        if isinstance(i, list):
            res.extend(flat(i))
        else:
            res.append(i)
    return res
print(flat(list_1))

# 示例3
list_1 = [1,2,3,4,5,6,7,8,9,0]
list_2 = [4,6,7,9,10]
print(list(filter(lambda w: w in list_1, list_2)))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值