gpt4 book ai didi

来自两个列表或 zip 的 python 理解

转载 作者:太空宇宙 更新时间:2023-11-04 10:39:20 26 4
gpt4 key购买 nike

我有两个列表:

labels = chunks[0].split("\n")
print(labels)
['Date', 'Open', 'High', 'Low', 'Close', 'Volume']

day0 = chunks[1].split("\n")
print(day0)
['Feb 7, 2014', '15,630.64', '15,798.51', '15,625.53', '15,794.08', '105,782,495']

我想将它们结合起来:['日期':'2014年2月7日', ...., '成交量':'105,782,495']

我尝试过同时使用 zip 和 comprehension,但似乎无法正常工作。我可以使用双 for 循环轻松地做到这一点,但我正在尝试学习 pythonesque 的方式来做到这一点。

例如,这似乎不起作用:

zipped = zip(labels, day0)
print(zipped)

谢谢!

最佳答案

zipped = dict(zip(labels, day0))

zipped = {lab:day for lab,day in zip(labels, day0)}

编辑:看起来标签很少更改;根据您要存储的天数和库存,使用命名元组可能更有效,如下所示:

from collections import namedtuple

labels = ['Date', 'Open', 'High', 'Low', 'Close', 'Volume']
StockDay = namedtuple('StockDay', [s.lower() for s in labels])

day0 = ['Feb 7, 2014', '15,630.64', '15,798.51', '15,625.53', '15,794.08', '105,782,495']
item = StockDay(*day0)

print(item)

结果

StockDay(date='Feb 7, 2014', open='15,630.64', high='15,798.51', low='15,625.53', close='15,794.08', volume='105,782,495')

然后字段可以访问为

item.date        # => 'Feb 7, 2014'

这有多重要?

import sys

print(sys.getsizeof(zipped)) # => 524 bytes
print(sys.getsizeof(item)) # => 52 bytes

... namedtuple 使用的内存不到 dict 的十分之一。

关于来自两个列表或 zip 的 python 理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21654848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com