collections 数据结构模块namedtuple
namedtuple类
导入模块
from collections import namedtuple
使用方法及说明
#pycharm 里按住 ctrl键点击 collections可查看源码
#collections数据结构
#__all__ = ['deque', 'defaultdict', 'namedtuple', 'UserDict', 'UserList','UserString', 'Counter', 'OrderedDict', 'ChainMap']
使用说明:
#猜包功能
name = ("lijie",'ll')
user = ("aa",23,189,'boddy') username,age,height,edu = user
print (username,age,height,edu)
打印结果:
aa 23 189 boddy #另一种方法
username,*other = user
print (username,other)
打印结果:
aa [23, 189, 'boddy']
namedtuple
功能说明:
相当于创建一个类,并调用类的属性的值
#传统类的属性值调用
class User1(object):
def __init__(self,name,age,height):
self.name = name
self.age = age
self.height = height
常规操作
#使用namedtuple,namedtuple是tuple的子类,相比于class,节省空间,代码变少,使用方法如下:
User = namedtuple("user",['name','age','height']) #相当于类的初始化,初始化变量信息
user = User(name='test',age=23,height=111) #给各参数赋值
print (user.name,user.age,user.height) #直接打印类的属性的值 #增加一列(*args方式,元组)
User = namedtuple("user",['name','age','height',"edu"]) #假如edu为新增加的列
user = ('test',23,111) #元组
user_end = User(*user,"master") ##将数组传到namedtuple里,master为添加的edu的信息
print (user_end.name,user_end.age,user_end.height,user_end.edu) #以**kwargs的方式增加列或传入数据(字典)
User = namedtuple("user",['name','age','height',"edu"])
user = { #字典
"name":'test',
"age":23,
"height":111
}
user_end = User(**user,edu="master") ##将字典数据传到namedtuple里print (user_end.name,user_end.age,user_end.height,user_end.edu) #_make方法
##如果用_make方法,可以把“*”省略,但是要求tuple或者dict里的元素数量必须与nametuple里指定的属性数量相同,例:
user1 = {
"name":'test',
"age":23,
"height":111,
"edu":"aa"
}
user_end = User._make(user1)
print (user_end.name,....) #当然,namedtuple也支持猜包
name,age,*other = user_end
print (name,age,other)
额外补充
tuple 可作为字典的key,而list不可以,示例:
name_tuple = ("test",22,185,"baskerball")
name_list = ["test1",22,188,"baseball"]
dd = {}
dd[name_tuple] = 'boddy'
print (dd)
dd[name_list] = 'body'
print (dd)
打印结果:
{('test', 22, 185, 'baskerball'): 'boddy'}
Traceback (most recent call last):
File "D:/python-script/collections_module/chapter1/collection_module.py", line 29, in <module>
dd[name_list] = 'body'
TypeError: unhashable type: 'list'
collections 数据结构模块namedtuple的更多相关文章
- collections集合模块 [namedtuple,deque,*]
collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple namedtuple是一个函数, 它用来创建一个自定义的tuple对象,并且规定了 tuple元 ...
- collections模块-namedtuple
namedtuple -> 命名元组 这里的命名指的是对元组中元素的命名. 通过一个例子来看 import collections Person = collections.namedtuple ...
- python基础 ---time,datetime,collections)--时间模块&collections 模块
python中的time和datetime模块是时间方面的模块 time模块中时间表现的格式主要有三种: 1.timestamp:时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算 ...
- 25、typing导入Python的数据类型模块、collections集合模块
一.typing模块 1.typing模块的作用 类型检查,防止运行时出现参数和返回值类型不符合. 作为开发文档附加说明,方便使用者调用时传入和返回参数类型. 该模块加入后并不会影响程序的运行,不会报 ...
- python基础语法12 内置模块 json,pickle,collections,openpyxl模块
json模块 json模块: 是一个序列化模块. json: 是一个 “第三方” 的特殊数据格式. 可以将python数据类型 ----> json数据格式 ----> 字符串 ----& ...
- The Collections Module内建collections集合模块
https://www.bilibili.com/video/av17396749/?p=12 Python函数式编程中的迭代器,生成器详解 课程内容 1.iterators are objects ...
- collections库的namedtuple+pytest的使用
from collections import namedtupleTask=namedtuple('Task',['summary','owner','done','id'])Task.__new_ ...
- fis中的数据结构模块Config
/* * config * caoke */ 'use strict'; Object.extend=function(props){ //继承父类 var prototype=Object.crea ...
- Python高级数据结构-Collections模块
在Python数据类型方法精心整理,不必死记硬背,看看源码一切都有了之中,认识了python基本的数据类型和数据结构,现在认识一个高级的:Collections 这个模块对上面的数据结构做了封装,增加 ...
随机推荐
- node.js 运行机制与简单使用
一.hello world 1.引入 required 模块 2.创建服务器 3.接收请求与响应请求 var http = require('http'); // 载入http模块 http.crea ...
- 解决Windows下Tomcat控制台中文乱码
找到${CATALINA_HOME}/conf/logging.properties 添加语句:java.util.logging.ConsoleHandler.encoding = GBK 重启to ...
- IDEA Failed to prepare an update: Temp directory inside installation
具体错误: Connection Error Failed to prepare an update: Temp directory inside installation: F:\IDEA_Tool ...
- P1064 金明的预算方案
思路:就是一个背包问题 因为数据范围小,所以不把 1个带附着物的东西 拆成 带1个带2个或不带 #include<bits/stdc++.h> using namespace std; ...
- LOJ2269 [SDOI2017] 切树游戏 【FWT】【动态DP】【树链剖分】【线段树】
题目分析: 好题.本来是一道好的非套路题,但是不凑巧的是当年有一位国家集训队员正好介绍了这个算法. 首先考虑静态的情况.这个的DP方程非常容易写出来. 接着可以注意到对于异或结果的计数可以看成一个FW ...
- 【XSY2703】置换 数学 置换 DP
题目描述 对于置换\(p\),定义\(f(p)\)为最小的正整数\(k\),使得\(p^k\)为恒等置换. 你需要求对于所有的\(n\)元素置换\(p\),\(f^2(p)\)的平均值. \(n\le ...
- reactNative 基础
参考:中文网,极客 一 . 基本程序: import React, { Component } from 'react'; import { Text } from 'react-native'; e ...
- hiho1258 Osu! Master
题目链接:http://hihocoder.com/problemset/problem/1258 题目大意:看能连击的次数 思路:水 看有多少个1和s就好了 #include <stdio.h ...
- JDK9.0.4环境变量配置
电脑不知道怎么就崩溃了...重置了一下,啥都没了 所有都得重新配置 wnm系列之jdk安装与配置 jdk下载,选择windows版本 http://www.oracle.com/technetwork ...
- <Android基础>(二) Activity Part 1
1.活动的基本用法: 1) 手动创建活动.创建加载布局 2) 在AndroidManifest文件中注册 3) 在活动中添加Button.Toast.Menu 4) 销毁活动 2.Intent 1) ...