Python 类型
数字(Number)
- 有符号整型
- 长整型
- 布尔值
- 浮点数
- 负数
- decimal(2.4版新增)用于十进制浮点型,但需要引入包decimal
- >>> import decimal
- >>> print decimal.Decimal(1.1)
- 1.100000000000000088817841970012523233890533447265625
python 2.3开始,超出整型范围的会自动转换为长整型。
- >>> import decimal
- >>> pystr = "python"
- >>> pystr[0]
- 'p'
- >>> pystr[2:4]
- 'th'
- >>> pystr + ' cool'
- 'python cool'
- >>> pystr * 2
- 'pythonpython'
列表(list)
- 列表用[ ]标识。是python最通用的复合数据类型
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
- 列表解析:在一行中使用for循环,将所有值放到一个列表中
- >>> pylist = [x ** 2 for x in range(4)]
- >>> type(pylist)
- <type 'list'>
- >>> print pylist
- [0, 1, 4, 9]
- >>> pylist = [x ** 2 for x in range(4)]
- 对于上述的列表解析形式,有一种很类似的形式使用的操作时(),但返回的是迭代器(generator)类型,在此列出加以区分(注意不要与元组混淆)
- >>> pya = (x ** 2 for x in range(4))
- >>> type(pya)
- <type 'generator'>
- >>> for i in pya:
- print i
- >>> pya = (x ** 2 for x in range(4))
列表同样满足索引操作([]),切片操作([:])
元组(Tuple)
- 元组用"()"标识。内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
元组同样满足索引操作([]),切片操作([:])
字典(dictionary)
- 字典是python中的映射数据类型,类似于perl中的关联数组或哈希表,由键-值(key-value)对构成,一般用不可变对象(immutable)作为键值
- 字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
- 字典(dictionary)是除列表外python之中最灵活的内置数据结构类型。两者之间的区别在于(当然不止以下区别):
- 列表是有序的对象结合,字典是无序的对象集合。
- 字典当中的元素是通过键来存取的,而列表通过偏移存取。
集合(set)
- 集合对象是一组无序排列的可哈希值,因此集合成员可以作为字典的键。
- 因集合是无序的,故无法对集合执行索引和切片操作。
- 集合分为可变集合(set)和不可变集合(frozenset);对可变集合可以执行简单的添加和删除等操作。
- >>> # 集合set的简单操作
- >>> s = set('python') # 利用工厂函数set()创建集合
- >>> s
- set(['h', 'o', 'n', 'p', 't', 'y'])
- >>> 'p' in s # 判断元素是否在集合中
- True
- >>> set('py') < s # 子集
- True
可以看到上面,集合的打印结果是无序的,而且以上只是简单举例集合操作,想要了解更多关于集合的操作可以使用函数dir() 和help()查看。
- >>> # 集合set的简单操作
可变对象(mutable)和不可变对象(immutable)的区别
首先再次声明,在python中所有的类型操作都作为对象处理,而且对变量的使用不需要预先声明类型(其实这里不该使用“变量”描述,姑且用“变量”代替吧),python会根据变量的值动态确定变量类型并存储在内存中(这是python的一大特点),对于immutable类型,若要改变它的值,采取的机制是分配一个新的对象(这里不必担心内存浪费的情况,python有自己的一套内存回收机制);而对于mutable 类型还是在原来的内存地址上进行操作,~~类似于在C++ 中的引用。
下面给以上类型分分类:
不可变对象(mutable):Number , String , tuple , frozenset
可变对象(immutable):list , dictionary , set
Python 类型的更多相关文章
- python类型学习
python类型学习 标准类型 数字 Integer 整型 Boolean 布尔型 Long integer 长整型 Floating point real numer 浮点型 Complex nu ...
- C Python类型互换
从Python到C的转换用PyArg_Parse*系列函数,int PyArg_ParseTuple():把Python传过来的参数转为C:int PyArg_ParseTupleAndKeyword ...
- Python类型和对象
关键字:Python 类型 对象原文:http://wiki.woodpecker.org.cn/moin/PyTypesAndObjects 关于本书 解释新式的Python对象(new-style ...
- python类型检测最终指南--Typing模块的使用
正文共:30429 字 预计阅读时间:76分钟 原文链接:https://realpython.com/python-type-checking/ 作者:Geir Arne Hjelle 译者:陈祥安 ...
- PyQt(Python+Qt)学习随笔:信号签名中的万能Python类型PyQt_PyObject
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 信号在定义时参数如果使用字符串'PyQt_PyObject'表示参数可以是任何Python类型,这通 ...
- python 类型判断-- isinstance函数
判断类型 函数isinstance()可以判断一个变量的类型,既可以用在Python内置的数据类型如str.list.dict,也可以用在我们自定义的类,它们本质上都是数据类型. 假设有如下的 Per ...
- Python 类型的分类
1.存储模型,对象可以保存多少个值.如果只能保存一个值,是原子类型.如果可以保存多个值,是容器类型.数值是原子类型,元组,列表,字典是容器类型.考虑字符串,按道理,字符串应该是容器类型,因为它包含多个 ...
- 介绍几款 Python 类型检查工具
近日,微软在 Github 上开源了一个 Python 静态类型检查工具:pyright ,引起了社区内的多方关注. 微软在开源项目上的参与力度是越来越大了,不说收购 Github 这种大的战略野心, ...
- 1. python 类型和运算
类型和运算 (Types and Operations) Introducing Python Object Types 在非正式的意义上, 在 Python 中, 我们用一些东西做事情. " ...
随机推荐
- 解决SDK下载时速度过慢的问题
1.打开android sdk manager 2.打开tool->options,如图所示 3.将Proxy Settings 里的HTTP Proxy Server和HTTP Proxy P ...
- 基于Unity3D的AOP使用思路
考虑到AOP的特性,并参考Python的装饰模式(AOP类似),在做开发时,可以使用AOP的思想做一些工作上的简化(比如:运行时的Range属性.内存/存档加密属性等等). 但是AOP(使用的Post ...
- ThreadLocal 和Synchronized
并发都用到, 两个都是解决了线程并发问题,区别呢? Synchronized 同步机制, 共有变量被多个线程使用,会出现线程不安全,所以,加锁,锁机制很多种,例如Synchronized, lock ...
- varchar(n)和varchar(max)有什么区别
如果列数据项的大小一致,则使用 char. 如果列数据项的大小差异相当大,则使用 varchar. 如果列数据项大小相差很大,而且大小可能超过 8,000 字节,请使用 varchar(max).
- C#使用Sockets操作FTP【转载】
using System; using System.Collections; using System.IO; using System.Net; using System.Net.Sockets; ...
- 修改Tomcat 6 默认的ROOT
1.找到conf/server.xml. 2.找到Host节点. 3.在该节点中添加子节点<Context path="" docBase="项目名称" ...
- hibernate相关知识
1.为什么要用Hibernate JDBC的优点 直接底层操作,提供了很简单.便捷的访问数据库的方法,跨平台性比较强.灵活性比较强,可以写很复杂的SQL语句. JDBC的缺点 因为JAVA是面向对象的 ...
- Using JAAS Authentication in Java Clients---weblogic document
The following topics are covered in this section: JAAS and WebLogic Server JAAS Authentication Devel ...
- java-字符串学习总结
Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类. String 类相关基础认知: 1.String类是final的,不可被继承.public fin ...
- Java GetAndPost
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...