python 通过dict(zip)和{}的方式构造字典的方法
作者:Weiyaner 时间:2023-10-03 00:05:12
在python中,通常通过dict
和zip
组合来构建键值对。
比如:
aid = [i for i in range(10)]
name = [[1] * 3] * len(aid)
dic1 = dict(zip(aid,name))
print('dic1:', dic1)
得到:
{0: [1, 1, 1],
1: [1, 1, 1],
2: [1, 1, 1],
3: [1, 1, 1],
4: [1, 1, 1],
5: [1, 1, 1],
6: [1, 1, 1],
7: [1, 1, 1],
8: [1, 1, 1],
9: [1, 1, 1]}
这样建立的是aid
和name
的一一映射关系,将aid作为key,第二列作为value。。
还可以通过dic
函数的形式或者{}
直接构造
dic2 = {'aid': aid,'name':name}
print('\ndic2:',dic2)
{
‘aid’: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
‘name’: [[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]]
}
这样通过建立新的key,list作为value存储。
以上两种方法,如果想经过aid进行索引取对应值的话:
方法1可以直接取出,方法2还需要获取到index再进行取值。所以法1速度更快但是与之相对的,法1存储了很多个key-value对,在存储空间上不如法2。
空间占用测试如下:
aid = [i for i in range(10)]
name = [[1] * 3] * len(aid)
dic1 = dict(zip(aid,name))
dic2 = {'aid': aid,'name':name}
print('dic1:', dic1)
print(sys.getsizeof(dic1))
print('\ndic2:',dic2)
print(sys.getsizeof(dic2))
dic1: {0: [1, 1, 1], 1: [1, 1, 1], 2: [1, 1, 1], 3: [1, 1, 1], 4: [1, 1, 1], 5: [1, 1, 1], 6: [1, 1, 1], 7: [1, 1, 1], 8: [1, 1, 1], 9: [1, 1, 1]}
360
dic2: {'aid': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 'name': [[1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1], [1, 1, 1]]}
232
经过测试,字典占用空间和键值对的个数并不是线性的。如果在很大的数据中,就需要考虑占用空间的大小,比如。10000个键值对,占用了7w字节。(应用在离线保存embeddings中)
来源:https://blog.csdn.net/weixin_42327752/article/details/125855403
标签:python,dict,zip,字典
0
投稿
猜你喜欢
Vue.js中安装一个路由器demo
2024-05-09 14:51:04
整合ckeditor+ckfinder,解决上传文件路径问题
2022-12-10 09:25:39
Vue3中watch的使用详解
2024-05-09 15:20:19
Linux下mysql新建账号及权限设置方法
2024-01-22 21:38:07
python画图时设置分辨率和画布大小的实现(plt.figure())
2022-11-09 18:12:17
sql server 带列名导出至excel
2008-11-25 11:07:00
百度编辑器复制微信图片无法保存
2023-08-14 17:32:46
Python入门教程1. 基本运算【四则运算、变量、math模块等】 <font color=red>原创</font>
2023-12-21 19:44:16
如何利用JS将手机号中间四位变成*号
2024-02-23 20:07:51
Python使用pptx实现复制页面到其他PPT中
2021-07-13 01:28:16
pycharm打开命令行或Terminal的方法
2022-12-11 07:07:08
Python 反转输出正整数的操作
2021-05-04 18:37:16
Pandas 实现分组计数且不计重复
2022-01-30 03:39:56
sqlserver 快速生成汉字的首拼字母的函数(经典)
2012-06-06 20:16:41
用私有属性来拯救IE7缩放图片的失真
2009-03-03 13:57:00
php实现生成验证码实例分享
2024-05-02 17:13:26
Sub-Pixel Bug?!
2010-03-24 18:09:00
python请求域名requests.(url = 地址)报错
2021-12-18 06:28:36
MySQL之存储过程按月创建表的方法步骤
2024-01-25 02:40:40
javascript globalStorage类代码
2024-04-22 12:51:08