list :python的一种数据类型。是可变的,有序的对象。可以删除和增加元素。
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] >>> View Code
list.sort(key=None,reverse=False) 对列表进行排序 如果列表中有多个数据类型,直接调用sort() 会报错
list.reverse() 反转列表
列表解析式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 >>>
字符串,列表,都是序列数据类型,元组也是,都可以进行切片,索引
元组是不可变的对象
当定义一个元组,只有一个元素,要使用逗号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]) >>> View Code >>> t (1, 2, 3) >>> x,y,z=t >>> x 1 >>> y 2 >>> z 3 >>> v2=(3,) >>> v2=() >>> type(v2) <class 'tuple'> >>>
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
^ 对称差集
集合方法
向集合添加元素:
View Code从集合删除元素:
View Coderemove方法如果删除的元素在集合里没有会报错,而discard 不会,返回None。pop()方法,括号里不能有参数,但是是随机删除里面的值。
difference 求差集
union 求并集
intersection求交集
isdisjoint 判断有无共同集合 ,返回布尔值
issubset 判断是不是它的子集 返回布尔值
issuperset判断是不是包含它 返回布尔值
View Code清除集合
clear 方法
set1.clear()
字典是按键-值的关系,一个键对应一个值,键必须是不可变的数据类型。
初始化定义字典:
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) View Code把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:
如果key不存在,就会报错
可以用in 来判断,或者get方法
get方法
如果不存在会返回NOne,注意:返回None的时候Python的交互式命令行不显示结果。不能通过get来改变字典的value,这个方法只能是获得值
要删除一个key,用pop(key)方法,对应的value也会从dict中删除
和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而变慢;需要占用大量的内存,内存浪费多。而list相反:
查找和插入的时间随着元素的增加而增加;占用空间小,浪费内存很少。所以,dict是用空间来换取时间的一种方法
转载于:https://www.cnblogs.com/yuyang26/p/6963993.html
