python 数据类型 datatype
python 数据类型 datatype
列表list
元组tuple
集合set
字典dictionary
字符串string
一、列表list
list :python的一种数据类型。是可变的,有序的对象。可以删除和增加元素。
1 列表常用的几种方法
list.append(x)
list.extend(iterable)
>>> ls=[1,2,'a',3]
>>> ls.append('b')
>>> ls
[1, 2, 'a', 3, 'b']
>>> t=(3,7)
>>> ls.extend(t)
>>> ls
[1, 2, 'a', 3, 'b', 3, 7]
>>>
list.remove(x) 从列表中删除x 元素
list.pop(i) 返回删除的元素的值,i为索引号 ,如果不指定参数,默认从列表最后开始删除元素
list.insert(i,x) 指定在某个索引号插入一个元素x
list.count(x) 计算x 元素在列表中出现的次数
list.index(x) 返回x 元素在列表中出现的索引号,如果列表中有多个x, 返回第一个
list.copy() 复制这个列表,会产生新的对象
>>> a=ls.copy()
>>> a
[2, 'a', 3, 7, 3]
>>> id(a)
54370632
>>> a.ppend('s')
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
a.ppend('s')
AttributeError: 'list' object has no attribute 'ppend'
>>> a.append('s')
>>> a
[2, 'a', 3, 7, 3, 's']
>>> ls
[2, 'a', 3, 7, 3]
>>>
list.sort(key=None,reverse=False) 对列表进行排序 如果列表中有多个数据类型,直接调用sort() 会报错
list.reverse() 反转列表
2.操作
- 切片
- 索引
- 取长度len()
3.将列表当做stack 使用
>>> stack=[4,5,6]
>>> stack.append('a')
>>> stack.append('b')
>>> stack
[4, 5, 6, 'a', 'b']
>>> stack.pop()
'b'
>>> stack.pop()
'a'
>>>
4.将列表当做队列queue使用
>>> queue=[4,5,6]
>>> queue.append(7)
>>> queue.append('u')
>>> queue
[4, 5, 6, 7, 'u']
>>> queue.pop(0)
4
>>> queue.pop(0)
5
>>> queue
[6, 7, 'u']
>>>
列表解析式list comprehension
>>> ls=[i for i in range(6)]
>>> ls
[0, 1, 2, 3, 4, 5]
del statement
del 语句可用来删除列表中某个元素,与pop() 返回一个value 不同,pop 可用来删除slice ,
del 也可以用来删除整个变量,当你再次引用这个名字,会引发 NameError
for example
>>> ls=[3.5,'df',478,'dfd']
>>> del ls[0]
>>> ls
['df', 478, 'dfd']
>>> del ls[0:2]
>>> del
SyntaxError: invalid syntax
>>> ls
['dfd']
>>> del ls
>>> ls
Traceback (most recent call last):
File "<pyshell#62>", line 1, in <module>
ls
NameError: name 'ls' is not defined
>>>
二、tuple and sequence
字符串,列表,都是序列数据类型,元组也是,都可以进行切片,索引
元组是不可变的对象
当定义一个元组,只有一个元素,要使用逗号commas,定义空元组时要用()
>>> t=1,2,3
>>> type(t)
<class 'tuple'>
>>> t[0]
1
>>> t[0]='asd'
Traceback (most recent call last):
File "<pyshell#66>", line 1, in <module>
t[0]='asd'
TypeError: 'tuple' object does not support item assignment
>>> #but they can contain mutable object
>>> v=([1,2,3],[4,53])
>>> v[0].append('a')
>>> v
([1, 2, 3, 'a'], [4, 53])
>>>
>>> t
(1, 2, 3)
>>> x,y,z=t
>>> x
1
>>> y
2
>>> z
3
>>> v2=(3,)
>>> v2=()
>>> type(v2)
<class 'tuple'>
>>>
三、集合set
A set is an unordered collection with no duplicate elements.
set 是一种无序的集合,集合里的元素不能重复
集合的特点:
- 互异性
- 无序性 :没有索引
- 确定性
在python 中,列表,字典不可放入到集合中
创建集合:创建空集合不能用{} ,要用set() ,{}会创建一个空字典
#创建集合
set1=set() #创建空集合
set1={'a','b','c',(1,2)}
定义不可变集合:
f_set_test=frozenset(set_test)
>>> f_set_test
frozenset({'l', 'e', 'h', 'o'})
集合关系运算
set2={1,2,3,4,5,6,7,8}
set3={3,4,5,6,7,8,9,10}
set2 & set3
print(set2 & set3)
print(set2 | set3)
print(set2 - set3)
in
not in
^ 对称差集
集合方法
向集合添加元素:
从集合删除元素:
remove方法如果删除的元素在集合里没有会报错,而discard 不会,返回None。pop()方法,括号里不能有参数,但是是随机删除里面的值。
difference 求差集
union 求并集
intersection求交集
isdisjoint 判断有无共同集合 ,返回布尔值
issubset 判断是不是它的子集 返回布尔值
issuperset判断是不是包含它 返回布尔值
清除集合
clear 方法
set1.clear()
四、dict 字典(无序)
字典是按键-值的关系,一个键对应一个值,键必须是不可变的数据类型。
初始化定义字典:

dic={}
常用操作
- 增加一个key-value D[key]=value
- 判断一个key在不在这个字典里 in 关键字
- 根据key取值 dic[key]
- 更新字典 update D.update(D2)
- 删除字典的key pop(key)
- 遍历字典 for loop
- 得到所有value D.values()
- 得到所有key D.keys()
- 得到所有key-value D.items()
>>> d={1:'a',2:'b',3:'c'}
>>> d.items()
dict_items([(1, 'a'), (2, 'b'), (3, 'c')])
>>> a=d.items()
>>> type(a)
<class 'dict_items'>
>>> list(a)
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> b=list(a)
>>> b
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> type(b[0])
<class 'tuple'>
>>> d.keys()
dict_keys([1, 2, 3])
>>> c=list(d.keys())
>>> c
[1, 2, 3]
>>> for i in c:
print(i)
1
2
3
>>> d.values()
dict_values(['a', 'b', 'c'])
>>> for key,value in d.items()
SyntaxError: invalid syntax
>>> for key,value in d.items():
print(key,value)
把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:

如果key不存在,就会报错

可以用in 来判断,或者get方法

get方法
如果不存在会返回NOne,注意:返回None的时候Python的交互式命令行不显示结果。不能通过get来改变字典的value,这个方法只能是获得值
要删除一个key,用pop(key)方法,对应的value也会从dict中删除

和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法
python 数据类型 datatype的更多相关文章
- python 数据类型---布尔型& 字符串
python数据类型-----布尔型 真或假=>1或0 >>> 1==True True >>> 0==False True python 数据类型----- ...
- Python 数据类型及其用法
本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组 ...
- day01-day04总结- Python 数据类型及其用法
Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...
- Python数据类型及其方法详解
Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...
- Python学习笔记(五)--Python数据类型-数字及字符串
Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...
- python数据类型之元组、字典、集合
python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...
- 1 Python数据类型--
常见的Python数据类型: (1)数值类型:就是平时处理的数字(整数.浮点数) (2)序列类型:有一系列的对象并排或者排列的情况.如字符串(str),列表(list),元组(tuple)等 (3)集 ...
- Python数据类型和数据操作
python数据类型有:int,float,string,boolean类型.其中string类型是不可变变量,用string定义的变量称为不可变变量,该变量的值不能修改. 下面介绍python中的l ...
- Python数据类型(python3)
Python数据类型(python3) 基础数据类型 整型 <class 'int'> 带符号的,根据机器字长32位和64位表示的范围不相同,分别是: -2^31 - 2^31-1 和 - ...
随机推荐
- 《linux内核设计与实现》第五章
第五章 系统调用 一.与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层.作用: 为用户空间提供了一种硬件的抽象接口. 系统调用保证了系统的稳定和安全. 每个进程都运行在虚拟系统中,而在 ...
- Linux内核分析——程序破解
1. 掌握NOP.JNE.JE.JMP.CMP汇编指令的机器码 NOP:NOP指令即“空指令”.执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令.(机器码: ...
- Leetcode——58.最后一个单词的长度
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 说明:一个单词是指由字母组成,但不包含任何空格的字符串. 示例: 输入: &quo ...
- [2017BUAA软件工程]第0次作业
第一部分:结缘计算机 1. 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 选择计算机专业的一个重要原因是因为计算机专业的就业前景好,由于计算机本身具有的各种优点,现在几乎所有的 ...
- [问题解决]基于注解配置dubbo遇到ConnectionLoss for /dubbo/xxx问题解决
今天升级spring版本的时候,同时升级dubbo的版本,采用的是dubbo的基于注解的配置方法,采用curator作为dubbo的客户端, curator版本为4.1.0,启动之后,发现一直报错 C ...
- 用async/ await来发送异步
昨天看了一篇vue的教程,作者用async/ await来发送异步请求,从服务端获取数据,代码很简洁,同时async/await 已经被标准化,是时候学习一下了. 先说一下async的用法,它作为一个 ...
- PSP(5.11——5.17)以及周记录
1.PSP 5.11 14:30 20:00 130 200 Cordova A Y min 5.12 9:00 14:00 100 200 Cordova A Y min 5.13 13:30 15 ...
- numpy meshgrid函数
1.meshgrid函数用两个坐标轴上的点在平面上画格. 用法: [X,Y]=meshgrid(x,y) [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的 [X, ...
- awk、sed、grep三大shell文本处理工具之awk的应用
awk 1.是什么 是一个编程语言.支持变量.数组.函数.流程控制(if...else/for/while) 单行程序语言. 2.工作流程 读取file.标准输入.管道给的数据,从第一行开始读取,逐行 ...
- (String)强制转换、toString()和String.valueOf()的区别
String:毫无疑问,这种就是强转形式,简单方便,效率高.java程序员可能看到效率高或许有些激动,但是它有他的不好,那就是局限性.在java的世界里没有什么东西是没有缺点的,总有一些好的方面同时也 ...