上QQ阅读APP看书,第一时间看更新
2.3.10 转换并换算数据
在Python程序中,我们可以对字典或列表中的数据同时进行转换和换算操作。此时需要先对数据进行转换或筛选操作,然后调用换算(reduction)函数(例如sum()、min()、max())进行处理。
(1)函数sum():进行求和计算,语法格式如下所示。
sum(iterable[, start])
· 参数iterable:可迭代对象,如列表。
· 参数start:指定相加的参数,如果没有设置这个值,默认为0。
例如下面展示了使用函数sum()的过程:
>>>sum([0,1,2]) 3 >>> sum((2, 3, 4), 1) # 元组计算总和后再加 1 10 >>> sum([0,1,2,3,4], 2) # 列表计算总和后再加 2 12
(2)函数min():返回给定参数的最小值,参数可以是序列。语法格式如下所示。
min(x,y,z, .... )
· 参数x:数值表达式。
· 参数y:数值表达式。
· 参数z:数值表达式。
(3)函数max():返回给定参数的最大值,参数可以是序列。使用方法和参数说明跟min()函数相同。
下面的实例文件zuixiaoda.py演示了使用函数min()获取最小值的过程。
源码路径:daima\第2章\zuixiaoda.py
print ("min(80, 100, 1000) : ", min(80, 100, 1000)) print ("min(-20, 100, 400) : ", min(-20, 100, 400)) print ("min(-80, -20, -10) : ", min(-80, -20, -10)) print ("min(0, 100, -400) : ", min(0, 100, -400)) print ("max(80, 100, 1000) : ", max(80, 100, 1000)) print ("max(-20, 100, 400) : ", max(-20, 100, 400)) print ("max(-80, -20, -10) : ", max(-80, -20, -10)) print ("max(0, 100, -400) : ", max(0, 100, -400))
执行后会输出:
min(80, 100, 1000) : 80 min(-20, 100, 400) : -20 min(-80, -20, -10) : -80 min(0, 100, -400) : -400 max(80, 100, 1000) : 1000 max(-20, 100, 400) : 400 max(-80, -20, -10) : -10 max(0, 100, -400) : 100
下面的实例文件zuixiaoda.py演示了同时对数据进行转换和换算的过程。
源码路径:daima\第2章\zuixiaoda.py
nums = [1, 2, 3, 4, 5] s = sum( x*x for x in nums ) print(s) import os files = os.listdir('.idea') if any(name.endswith('.py') for name in files): print('这是一个Python文件!') else: print('这里没有Python文件!') s = ('RMB', 50, 128.88) print(','.join(str(x) for x in s)) portfolio = [ {'name': 'AAA', 'shares': 50}, {'name': 'BBB', 'shares': 65}, {'name': 'CCC', 'shares': 40}, {'name': 'DDD', 'shares': 35} ] min_shares = min(s['shares'] for s in portfolio)
在上述代码中,以一种非常优雅的方式将数据的换算和转换结合在一起,具体方法是在函数参数中使用生成器表达式。执行结果如图2-26所示。
图2-26 执行结果