from collections import namedtupleStock = namedtuple('Stock', ['date', 'price'])dates = ('2021-01-01', '2021-01-02', '2021-01-03')prices = (128.8, 131.1, 129.5)stocks = [Stock(date, price) for date, price in zip(dates, prices)]for stock in stocks:print(stock.date, stock.price)在这个例子中 , 我们使用namedtuple创建了一个名为Stock的类 , 并指定其属性为'date'和'price' , 这可以使得元组中的元素具有更清晰的含义 。然后我们创建了一个包含namedtuple元素的列表 , 并使用for循环来遍历每个namedtuple 。这种方式使代码更具可读性 , 同时也更便于后续的数据操作 。运行上述代码的输出结果是:
2021-01-01 128.82021-01-02 131.12021-01-03 129.5字典推导式(dictionary comprehension)
是一种用来快速创建新字典的语法结构 。可以使用一种基于现有字典元素或其他可遍历对象的简洁方式来生成新的字典 。以下是使用字典推导式改进上面的代码:
from collections import namedtupleStock = namedtuple('Stock', ['date', 'price'])dates = ('2021-01-01', '2021-01-02', '2021-01-03')prices = (128.8, 131.1, 129.5)stocks = {date: price for date, price in zip(dates, prices)}stocks = {date: Stock(date, price) for date, price in stocks.items()}for stock in stocks.values():print(stock.date, stock.price)在改进后的代码中 , 将 namedtumple 对象用字典类型来保存 , 使用字典推导式先生成一组键值对(日期和价格)的字典 。然后再用另一条字典推导式构建 namedtumple 对象 , 最后可以直接遍历字典的值以获取键值对的数据 。
有序字典(OrderedDict)
Python 标准库中的 collections 模块提供了一个名为 OrderedDict 的有序字典类型 。与普通字典不同 , OrderedDict 记录了元素添加的顺序 , 因此可以在迭代时保持这个顺序 , 并支持一些有序字典专属的方法(如 popitem(last=True) 可以移除最后添加的元素) 。
可以使用 collections 模块中的 OrderedDict 类型来对上面的代码进行改进:
from collections import OrderedDict, namedtupleStock = namedtuple('Stock', ['date', 'price'])dates = ('2021-01-01', '2021-01-02', '2021-01-03')prices = (128.8, 131.1, 129.5)stocks = {date: price for date, price in zip(dates, prices)}stocks = OrderedDict((date, Stock(date, price)) for date, price in stocks.items())for stock in stocks.values():print(stock.date, stock.price)将 stocks 字典转化为了 OrderedDict 实例 。与普通字典不同 , OrderedDict 会记住元素添加的顺序并在迭代时保持这个顺序 , 输出结果可以保证有序 。
以上是对Python的基础语法与数据结构做了一个说明 , 下一期我们将继续对Python函数进行讲解 。
推荐阅读
- 翡翠|行业快讯 | 2023平洲翡翠玉石夏季交易会开幕,5月23日开标!
- 星象|?(周运)Alex 12星座一周运势(5.22—5.28)
- 黑客必修:批处理常用网络命令和符号——网络命令
- 何超琼|何超琼李泽钜罕见同框——某种角度的必然
- 翡翠|标题:帝王绿翡翠的珍贵性与价值——如何鉴别市面上的真假帝王绿翡翠?
- 张柏芝|「家族基因难抹杀」——张柏芝乌龙事件深意探析
- 鲤鱼|钓鱼日记——2023年5月19日(巩华城夜钓)
- 连衣裙|如何穿出高校女老师范儿—黑色小香风连衣裙搭配黑色高跟鞋
- 刘三姐|“刘三姐”程春莲:用身体交易103次,敛财76万,37岁被执行枪决
- 火龙果|陈凯琳晒出与老公亲密照——爱你不只在五二零
