python  数据类型 datatype

  1. 列表list

  2. 元组tuple

  3. 集合set

  4. 字典dictionary

  5. 字符串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 是一种无序的集合,集合里的元素不能重复

集合的特点:

  1. 互异性
  2. 无序性  :没有索引
  3. 确定性

在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有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法

python 数据类型 datatype的更多相关文章

  1. python 数据类型---布尔型& 字符串

    python数据类型-----布尔型 真或假=>1或0 >>> 1==True True >>> 0==False True python 数据类型----- ...

  2. Python 数据类型及其用法

    本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组 ...

  3. day01-day04总结- Python 数据类型及其用法

    Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...

  4. Python数据类型及其方法详解

    Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...

  5. Python学习笔记(五)--Python数据类型-数字及字符串

    Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...

  6. python数据类型之元组、字典、集合

    python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...

  7. 1 Python数据类型--

    常见的Python数据类型: (1)数值类型:就是平时处理的数字(整数.浮点数) (2)序列类型:有一系列的对象并排或者排列的情况.如字符串(str),列表(list),元组(tuple)等 (3)集 ...

  8. Python数据类型和数据操作

    python数据类型有:int,float,string,boolean类型.其中string类型是不可变变量,用string定义的变量称为不可变变量,该变量的值不能修改. 下面介绍python中的l ...

  9. Python数据类型(python3)

    Python数据类型(python3) 基础数据类型 整型 <class 'int'> 带符号的,根据机器字长32位和64位表示的范围不相同,分别是: -2^31 - 2^31-1 和 - ...

随机推荐

  1. [Beta]M2事后分析

    计划 你原计划的工作是否最后都做完了? 如果有没做完的,为什么? 答:没有,全部的功能没有实现.其中,界面还差两个,逻辑还差闹钟逻辑和群组逻辑,可以说这些东西是我们的核心功能之一,缺失了他们对我们整个 ...

  2. js实现树形内容展示

    1.首先这里有一个demo,里边有封装好的js文件.地址:http://files.cnblogs.com/files/feifeishi/dtree.zip 2.直接上代码 <div styl ...

  3. let命令和块级作用域

    学习了阮一峰老师的ES6,http://es6.ruanyifeng.com/,收益良多. 一.let命令1.概念:let命令用于声明变量,和var类似,但是使用let命令所声明的变量只有在该变量所在 ...

  4. personal project

    words count program 统计文本文件的字符数,单词数和行数. 实现一个统计程序,他能正确的统计程序文件中的字符数,单词数和行数. 源码链接 https://github.com/sup ...

  5. 学习github心得

    Git 是 Linux 的创始人 Linus Torvalds 开发的开源和免费的版本管理系统,利用底层文件系统原理进行版本控制的工具.Git是目前为止最著名运用最好最受欢迎的分布式的配置管理工具. ...

  6. Java对象及对象引用变量

    Java对象及其引用 关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对 ...

  7. “i词汇”宣传文案

    目录 "i词汇"微信小程序 队名 :颜罗王team 成员: 姓名 学号 杨雪莹(PM) 201521123005 林楚虹 201521123002 董美凤 201521123003 ...

  8. Centos7 yum安装Chrome浏览器

    一.创建yum源文件 cd /etc/yum.repo.d/ touch google-chrome.repo 二.输入yum源信息 [google-chrome] name=google-chrom ...

  9. 使用libcurl 发送post请求

    SendHttpPost(string& strUrl, string& strPost, string& strResponse, int nTimeOut) { CURLc ...

  10. BZOJ3152[Ctsc2013]组合子逻辑——堆+贪心

    题目链接: BZOJ3152 题目大意: 一开始有一个括号包含[1,n],你需要加一些括号,使得每个括号(包括一开始的)所包含的元素个数要<=这个括号左端点那个数的大小,当一个括号包含另一个括号 ...