30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
|
# 这是一种简化操作,可以将转换和换算合为一体,比如我们有一个列表
|
||
|
nums = [1,2,3,4,5]
|
||
|
|
||
|
# 计算平方和我们一般这样子做:
|
||
|
nums_square = [x*x for x in nums]
|
||
|
s = sum(nums_square)
|
||
|
|
||
|
# 这个时候我们就可以这样来简化一下运算:
|
||
|
s = sum(x*x for x in nums)
|
||
|
|
||
|
|
||
|
# 又或者我们要在一堆参数中间加一些分隔符:
|
||
|
# 注意,这里的join和os.path.join不一样,这里是用来给jion输入的列表加分隔符的
|
||
|
s = ("ACME", 50, 123.45)
|
||
|
print(','.join(str(x) for x in s))
|
||
|
|
||
|
# 这里我们将生成器表达式从()里薅出来,当作可迭代参数塞进了函数里,这样避免了列表生成器造成的内存浪费
|
||
|
|
||
|
# 对单个字典内,我们用键值反转的方法来找元素,但是如果这是一个字典列表,那情况就大大不同了
|
||
|
portfolio = [
|
||
|
{'name': 'GOOG', 'shares': 50},
|
||
|
{'name': 'YHOO', 'shares': 75},
|
||
|
{'name': 'AOL', 'shares': 20},
|
||
|
{'name': 'SCOX', 'shares': 65}
|
||
|
]
|
||
|
max_share = max(portfolio, key=lambda x: x["shares"])
|
||
|
print(max_share)
|
||
|
# 当然如果仅仅只要拿到最小值就用到了生成器表达式内嵌的方法
|
||
|
max_share_num = max(s['shares'] for s in portfolio)
|
||
|
print(max_share_num)
|