namedtuple如何处理多个tuple/dict的数据?

本文介绍Python中namedtuple的使用技巧,包括线程安全、哈希特性及动态生成key的方法,展示如何通过namedtuple处理大量数据,实现内存优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个很省内存的工具,其基础类型是tuple

namedtuple:

      线程安全,可哈希,元组不可修改哦~(非绝对)

     

example:

      Userprofile = ("Userprofile","name,email,user_id") # 1

      Userprofile = ("Userprofile","name email user_id") # 1

      Userprofile = ("Userprofile",["name","email","user_id"]) # 1

#三种传递方式都是可以的!

 

      User_Info_tuple = ("Trump","example@example.com")

      User_info_dict = {"name":"Trump","email":"example@example.com"}

#只要是iterable 都是可以通过_make()传递的

      Userprofile._make(User_Info_tuple) #传递一个iterable !

      Userprofile._make(User_dict_tuple)

# obj._asdict() 将里面的数据dict化,返回的是OrderedDict类型!

      Userprofile._asdict()

 

#如何处理多个数据? 个人感觉namedtuple在处理大量数据方面比较弱

from collections import namedtuple

p_info = [{"name":"Trump","age":74},
          {"name":"Baden","age":82},
          {"name":"Sleep boy","age":83},
          {"name":"Dolly","age":29}
          ]

person = namedtuple("person",["A"+str(i) for i in range(0,len(p_info))]) # 动态生成key! 可以修改,我能想到的方法就只有这个了~~~ 
p = person(*p_info)
print(p.A0.get("name")) #这里会有点不兼容,Pycharm会显示高亮,不可取~

# 比如我想要比较我的p_info里面的数据那个不同,如果单单是用循环的话,那么程序的内存消耗会很吃紧的! 所以我就想着用namedtuple试试,结果还是很不错的~

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值