当前位置: 首页 > wzjs >正文

公司网站开发怎么做账鞍山招聘网站

公司网站开发怎么做账,鞍山招聘网站,网站色调红黑,个人网站要多少钱📚 collections.namedtuple 学习指南 命名元组(namedtuple)是 Python collections 模块中一种增强型元组,支持通过字段名访问元素,同时保持元组的内存效率和不可变性。 一、基础用法 1. 定义命名元组 from collectio…

📚 collections.namedtuple 学习指南
命名元组(namedtuple)是 Python collections 模块中一种增强型元组,支持通过字段名访问元素,同时保持元组的内存效率和不可变性。


一、基础用法

1. 定义命名元组
from collections import namedtuple# 定义 Point 类型(字段名用空格或列表分隔)
Point = namedtuple('Point', ['x', 'y'])
# 或简写为
Point = namedtuple('Point', 'x y')# 实例化对象
p = Point(10, y=20)  # 类似常规元组或类构造
print(p)             # 输出: Point(x=10, y=20)
2. 访问元素
print(p.x)    # 10(通过字段名)
print(p[0])   # 10(通过索引,保留元组特性)

二、核心特性

1. 不可变性

命名元组继承自普通元组,元素不可修改

# 以下操作会报错
p.x = 100  # AttributeError: can't set attribute
2. 轻量级类替代

相比传统类,命名元组更简洁:

# 等价于以下类定义
class PointClass:def __init__(self, x, y):self.x = xself.y = y

三、方法与属性

1. 常用方法
方法功能示例
_asdict()转为 OrderedDictp._asdict(){'x':10, 'y':20}
_replace(**kwargs)创建新实例并替换字段值p._replace(x=100)Point(x=100, y=20)
_make(iterable)通过可迭代对象创建实例Point._make([30, 40])Point(x=30, y=40)
2. 元数据属性
print(p._fields)  # 输出字段名元组: ('x', 'y')# 可扩展新类型(通过继承)
Point3D = namedtuple('Point3D', Point._fields + ('z',))

四、进阶应用

1. 字典互转
# 转字典(Python 3.7+ 返回普通字典)
d = p._asdict()  # {'x': 10, 'y': 20}# 从字典创建
data = {'x': 30, 'y': 40}
p_new = Point(**data)  # Point(x=30, y=40)
2. 默认值与可选参数

通过定义子类添加默认值:

class PointDefault(Point):__slots__ = ()def __new__(cls, x=0, y=0):return super().__new__(cls, x, y)p_default = PointDefault()  # Point(x=0, y=0)
3. 添加方法
class PointWithMethods(Point):def distance(self, other):return ((self.x - other.x)**2 + (self.y - other.y)**2)**0.5p1 = PointWithMethods(1, 2)
p2 = PointWithMethods(4, 6)
print(p1.distance(p2))  # 输出 5.0

五、实际应用场景

1. 数据库查询结果
import sqlite3conn = sqlite3.connect('example.db')
cursor = conn.cursor()
cursor.execute('SELECT id, name, age FROM users')# 将每行转为命名元组
User = namedtuple('User', 'id name age', module=__name__)
users = [User(*row) for row in cursor.fetchall()]print(users[0].name)  # 通过字段名访问数据
2. CSV 文件解析
import csvwith open('data.csv') as f:reader = csv.reader(f)header = next(reader)Row = namedtuple('Row', header)for r in reader:row = Row(*r)print(row.date, row.value)  # 按字段名访问列
3. 替代简单类
# 表示 RGB 颜色
Color = namedtuple('Color', 'red green blue')
white = Color(255, 255, 255)# 函数返回多个命名值
def get_dimensions():return namedtuple('Size', 'width height')(1920, 1080)screen = get_dimensions()
print(f"分辨率: {screen.width}x{screen.height}")

六、命名元组 vs 其他数据结构

特性命名元组字典普通类
内存占用较大较大
访问速度快速(通过索引和字段名)略慢(哈希查找)略慢(属性访问)
可变性不可变可变可变
语法简洁性低(需定义类)
代码可读性高(明确字段名)一般

七、注意事项

1. 字段名规范
  • 字段名不能是 Python 关键字(如 class, def)。
  • 字段名不可重复,否则报错:
    # 错误示例
    Invalid = namedtuple('Invalid', 'x x')  # ValueError: 重复字段名
    
2. 不可变性的权衡
  • 优点:线程安全、哈希可用性(可作为字典键)。
  • 缺点:需要创建新实例以实现“修改”。

八、总结

命名元组是以下场景的理想选择:

  • 需要轻量级不可变数据结构
  • 希望通过字段名提高代码可读性
  • 需将数据作为字典键使用(普通字典键需用元组)。

进一步学习

  • Python 官方文档 - namedtuple
  • 探索 typing.NamedTuple(Python 3.6+)以支持类型注解!

文章转载自:

http://lusln9mK.kqyfn.cn
http://uBNXsuNp.kqyfn.cn
http://SeJnhYkf.kqyfn.cn
http://G6lfzTo0.kqyfn.cn
http://fuh2srFV.kqyfn.cn
http://mENCt1W9.kqyfn.cn
http://I73FhAPZ.kqyfn.cn
http://N5f1FI6o.kqyfn.cn
http://J7QJ5tvl.kqyfn.cn
http://iYQP8qd9.kqyfn.cn
http://EH7z8kwe.kqyfn.cn
http://Wb1MV49c.kqyfn.cn
http://95ZpRWm8.kqyfn.cn
http://Ximh8m4J.kqyfn.cn
http://QDRCCM1A.kqyfn.cn
http://QlTdJFAW.kqyfn.cn
http://Tryk48fK.kqyfn.cn
http://qCazw8PK.kqyfn.cn
http://VFQHHOYR.kqyfn.cn
http://5VF9frsU.kqyfn.cn
http://n0t6FNFc.kqyfn.cn
http://kX1TA9Xo.kqyfn.cn
http://mM3gMXjr.kqyfn.cn
http://zZYi1Mkn.kqyfn.cn
http://yXB8yR5M.kqyfn.cn
http://v4nRBwfa.kqyfn.cn
http://0HgkCL5i.kqyfn.cn
http://YSXn7dMC.kqyfn.cn
http://9YhheGPk.kqyfn.cn
http://RlsfCgrW.kqyfn.cn
http://www.dtcms.com/wzjs/633014.html

相关文章:

  • 网站开发连接数据库的方法广州做网站哪家好
  • 暴走漫画网站建设中模板wordpress一件代发
  • 网站建设公司哪家好要选磐石网络安徽苏亚建设安装有限公司网站
  • 炫酷的国外网站淮北市相山区建设局网站
  • 长垣高端建站成都网站建设科技公司
  • 孝义网站建设余名是什么意思
  • 品牌网站建设等高端服务seo网络推广软文的格式
  • 爱站网长尾关键词挖掘工具下载动画设计图
  • 公司网站内容模块布局网站内容创意
  • 古蔺网站建设html自动播放视频
  • 蜜淘app在那个网站做的营销型网站大全
  • 做网站的大公司建设工程造价管理基础知识
  • 网站后台如何修改标题沈阳网站建设与开发
  • 公司网站建设推进表wordpress 开关 边栏 选择 模板
  • 水果销售网站模板中国建设银行幼儿缴费官网站
  • 淄博网站建设费用做个有用网站
  • 做任务反佣金的网站网站建设出现乱码
  • 柯林建站程序wordpress自动回复
  • 网赌网站国外空间查询网站建设
  • 在网站上做远程教育系统多少钱网站建设的开发的主要方法
  • 如何区分网站开发语言合肥制作网站公司
  • 网站建设费怎么入账手机可以开发网站
  • 网站风格分析网站建设技术包括哪些
  • 做的网站 为什么百度搜不到哈佛门户网站建设特点
  • 新网站建设哪家好网站是如何设计配置方案的
  • 网站关于我们的页面常州集团网站建设
  • 小企业做网站怎么做如何制作手机购物网站
  • 南山建站公司做app模板网站
  • 网站建设个人主要事迹新浦网站制作网站建设
  • 建设门户网站需要注意什么意思中国纪检监察网站首页