Files
Python_CookBook_repo/1.数据结构与算法/19.同时对数据做转化和换算.py

30 lines
1.2 KiB
Python
Raw Permalink Normal View History

2025-09-10 16:12:45 +08:00
# 这是一种简化操作,可以将转换和换算合为一体,比如我们有一个列表
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)