python-3.x - 在python3中迭代有限的dict_values
问题描述
使用 py3,我试图简单地迭代dict_values
哪个是 python3 中的视图而不是list
,所以我不能再这样做dict_values[:limit]
了。
在py3下面不能做,
In [1]: large_dict_values = large_dict.values()
In[2]:type(large_dict_values)
Out[2]: dict_values
In[3]:limit=5
In [4]: [print(item) for item in large_dict_values[:limit]]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-17-eae6bfe09d50> in <module>
----> 1 [print(item) for item in large_dict_values[:limit]]
TypeError: 'dict_values' object is not subscriptable
当然可以将这个view
(dict_values)转换list
为如下,但考虑如果我有大量的元素在视图中,转换为列表是内存昂贵的操作。这是我能达到的,
In [10]: large_dict_values = large_dict.values()
In[11]:type(large_dict_values)
Out[11]: dict_values
In [13]: dict_values_list = list(large_dict_values)
In [15]: [print(item) for item in dict_values_list]
Out[15]: []
有没有人已经对此感到困惑并有更好的解决方案?
解决方案
也许是这样的:
import string
d = dict([(c, ord(c)) for c in string.ascii_lowercase])
values = d.values()
g = iter(values)
subset = [next(g) for i in range(5)] # take the first five values
print(subset)
推荐阅读
- python - 如何从命令提示符使用一个命令导入多个库?
- powerbi - PowerBI_calculate ID 在两个时间点之间重叠
- solr - 使 Solr 字段(名称)不区分大小写
- angular - 使用 @ngx-formly JsonSchema 和字段组。这可能吗?
- python - 在 IoT Edge 中使用 OPCUA 订阅导出数据
- c++ - 在 C++ 中使用不同的参数初始化“堆栈”变量有什么用?
- vb.net - 使表单透明而不丢失边框透明度 [VB.NET]
- android - 未聚焦时如何扩展 EditText?
- python - 是否可以使用 python 做一个受限的 VAR-X 模型?
- wordpress - 如何在 wordpress+woocommerce 的某个类别中获取产品某些属性的选项列表?