Python
数据主要分为:
- 整数型 ;数字的整数
- 浮点型; 数字带小数
- 字符串; 用 ‘’ 或者 “” 引用的任意文本
- 布尔型;只有
True 和 ``False
数据结构分为:
- 列表 list
- 元祖 tuple
- 字典 dict
- 集合 set
列表-list
list是一种有序的集合,可以随时添加和删除其中的元素。
创建列表 用 [] 符号
list索引为0开始的,索引0 表示第1个元素,以此类推
#创建一个list 列表
L=[1,"hello",True,1.2]
print(L)#打印出L列表
print(len(L))#利用len()方法查询列表的长度
print(L[0],L[1])#根据索引 查询 列表中的数据,索引是从0 开始的
#切片方法活用
print(L[0:2])# 切片 从索引0 到 1提取list的元素
print(L[1:0])#q切片 从索引1到最后的元素全部提取
print(L[-1])#提取倒数第一个元素
print(L[-3:0])#倒数第三个元素 往后提取
print(L[::2])#切片 步长为2
print(L[::-1])#倒叙 打印出list
append方法每次只能在末尾填入一个元素;
insert方法可在指定的位置插入一个元素;
L.append('python')#在列表的最后插入元素
L.insert(0,"Love")
pop方法在不指定参数时默认删除末尾元素,也可以指定删除某个位置的元素;
remove方法删除指定的元素值;
clear方法清空列表元素;
del函数删除列表对象;
L.pop()#末尾删除一个元素
print(L)
L.pop(1)#指定一个位置删除一个元素
print(L)
L.remove(True)
print(L)
L.clear()
print(L)
copy方法复制一个物理对象,而非视图对象;
count方法计数;
index方法返回索引位置;
reverse方法实现元素颠倒;
sort方法排序
L1=['a','a','b','c','d','e','f','g']
L2=L1.copy()#复制list
print(L2)
print(L1.count('a'))#计“a”出现吃次数
print(L1.index('b'))#反为b的索引位子
L1.reverse()#颠倒元素
print(L1)
L1.sort()#默认升序排序
print(L1)</pre>
元组
是不可变的序列,没有增,删,改的权限;
只能查询和使用索引,切片等一些功能
元组最大的好处是可以保证数据的安全。
T=(1,2,'a','b')
print(T)
print(T[0])
print(T[0:2])</pre>
字典
花括号{}或dict函数来构造键-值对。
#创建名字和年龄的字典,名字为键,年龄为值
name_age={"da_wang":27,"liu":26,"kong":12}
print(name_age)
print(name_age["kong"])
#根据key值 从新付给新的数据
name_age["kong"]=27
print(name_age)
#要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
print(name_age.pop("liu"))
#要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
print("da" in name_age)
#通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
print(name_age.get("da_wang"))
List比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。
集合:
集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。
可以用大括号({})创建集合。注意:如果要创建一个空集合,你必须用 set() 而不是 {} ;
>>> # 以下演示了两个集合的操作
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a # a 中唯一的字母
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # 在 a 中的字母,但不在 b 中
{'r', 'd', 'b'}
>>> a | b # 在 a 或 b 中的字母
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 在 a 和 b 中都有的字母
{'a', 'c'}
>>> a ^ b # 在 a 或 b 中的字母,但不同时在 a 和 b 中
{'r', 'd', 'b', 'm', 'z', 'l'}</pre>
http://www.runoob.com/python3/python3-data-structure.html
扩展:
内置标准库模块:collection
我们都知道,Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型:
- namedtuple(): 生成可以使用名字来访问元素内容的tuple子类
- deque: 双端队列,可以快速的从另外一侧追加和推出对象
- Counter: 计数器,主要用来计数
- OrderedDict: 有序字典
- defaultdict: 带有默认值的字典
https://www.cnblogs.com/zhizhan/p/5692668.html
deque
import collections
d = collections.deque()
索引方式:
d[0] d[-1]
x.append():在列表的右边添加
x.appendleft():在队列的左边添加
x.pop():移除元素并返回,从右边
x = d.pop()
x.popleft():移除元素并返回,从左边
x.clear():清空列表
x.count():队列某个元素出现的次数
x.extend():往右边扩展,添加多个数据
d.extend([3,4,5])
x.extendleft():往左边扩展
x.insert():指定位置插入元素
d.insert(2,'z')
x.reverse():反转
x.rotate():把后面的元素放到前面,转圈的形式
d.extend(['a','b','c','d','e'])
d.rotate(2)
#输出:deque(['d', 'e', 'a', 'b', 'c'])
x.index():取队列的索引位置,默认从左
d.index('e')</pre>
网友评论