欢迎来到田晓东的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

python 基础学习三:数据结构对比

各数据结构对比

列表 元组 集合 字典
英文 list tuple set
可否读写 读写 只读 读写
可否重复
存储方式 键(不能重复)
是否有序 有序 有序 无序
初始化 [1,'a'] ('a', 1) set([1,2]) 或
添加 append 只读 add
读元素 l[2:] t[0]

各数据结构方法

列表(list)

具有以下特点:
1.可以用list()函数或者方括号[]创建,元素之间用逗号’,‘’分隔。
2.列表的元素不需要具有相同的类型
3.使用索引来访问元素
4.可切片 
操作 解释
list.append(): 追加成员
list.count(x): 计算列表中参数x出现的次数
list.extend(L): 向列表中追加另一个列表L
list.index(x): 获得参数x在列表中的位置
list.insert(): 向列表中插入数据
list.pop(): 删除列表中的成员(通过下标删除)
list.remove(): 删除列表中的成员(直接删除)
list.reverse(): 将列表中成员的顺序颠倒
list.sort(): 将列表中成员排序
list(seq) 将元组转换为列表。

元组(tuple)

元组跟列表很像,只不过元组用小括号来实现(),这里要区分好和生成器的区别,两者都可用小括号来实现的

具有以下特点:
1.可以用tuple()函数或者方括号()创建,元素之间用逗号’,‘’分隔。
2.元组的元素不需要具有相同的类型
3.使用索引来访问元素
4.可切片
5.元素的值一旦创建就不可修改!!!!!(这是区别与列表的一个特征)
操作 解释
cmp(tuple1, tuple2) 比较两个元组元素。
len(tuple) 计算元组元素个数。
max(tuple) 返回元组中元素最大值。
min(tuple) 返回元组中元素最小值。
tuple(seq) 将列表转换为元组。
字典(Dictionary)
字典是另一种可变容器模型,且可存储任意类型对象。

具有以下特点:
1.元素由键(key)和值(value)组成
2.可以用dict()函数或者方括号()创建,元素之间用逗号’,‘’分隔,键与值之间用冒号”:”隔开
3.键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组
4.使用键(key)来访问元素
操作 解释
adict.keys() 返回一个包含字典所有KEY的列表;
adict.values() 返回一个包含字典所有value的列表;
adict.items() 返回一个包含所有(键,值)元祖的列表;
adict.clear() 删除字典中的所有项或元素;
adict.copy() 返回一个字典浅拷贝的副本;
adict.fromkeys(seq, val=None) 创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None);
adict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None);
adict.has_key(key) 如果key在字典中,返回True,否则返回False。 现在用 in 、 not in;
adict.iteritems() adict.iterkeys() adict.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;
adict.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;
adict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key键,由 adict[key] = default 为它赋值;
adict.update(bdict) 将字典bdict的键值对添加到字典adict中。
集合(set)
具有以下特点:
1.可以用set()函数或者方括号{}创建,元素之间用逗号”,”分隔。
2.与字典相比少了键
3.不可索引,不可切片
4.不可以有重复元素
操作 解释
s.issubset(t),s <= t 测试是否 s 中的每一个元素都在 t 中
s.issuperset(t),s >= t 测试是否 t 中的每一个元素都在 s 中
s.union(t),s t
s.intersection(t),s & t 返回一个新的 set 包含 s 和 t 中的公共元素
s.difference(t),s - t 返回一个新的 set 包含 s 中有但是 t 中没有的元素
s.symmetric_difference(t),s ^ t 返回一个新的 set 包含 s 和 t 中不重复的元素
s.copy() 返回 set “s”的一个浅复制

列表、元组、集合、字典相互转换

列表元组转其他

#列表转集合(出重) 
list1 = [6,7,8,8,9] 
a=set(list1) 
print(a) 
  
 
#两个列表转字典 
list1 = ['key1','key2','key3'] 
list2 = ['1','2','3'] b
=dict(zip(list1,list2)) 
print(b)  #嵌套列表转字典 
list3 = [['key1','value1'],['key2','value2'],['key3','value3']] 
c=dict(list3) print(c) 
  
 
# 列表、元组转字符串 
list2 = ['a', 'a', 'b'] 
d=''.join(list2) 
print(d) 
 
 t
up1 = ('a', 'a', 'b') 
d=''.join(tup1) 
print(d) 

字典转其他

# 字典转换为字符串 
dic1 = {'a':1,'b':2} 
e=str(dic1) 
print(e) 
 
 
# 字典key和value互转 
dic2 = {'a': 1, 'b': 2, 'c': 3} 
dic3={value:key for key, value in dic2.items()} 
print(dic3) 

字符串转其他

# 字符串转列表 
s = 'aabbcc' 
f=list(s) 
print(f)
# 字符串转元组 
g=tuple(s) 
print(g)
# 字符串转集合 
h=set(s) 
print(h)
# 字符串转字典 
dic2 = eval("{'name':'ljq', 'age':24}") 
print(dic2)
# 切分字符串 
a = 'a b c' 
i=a.split(' ') 
print(i)

posted on 2021-09-15 21:59  匍匐的仰望者  阅读(108)  评论(0编辑  收藏  举报

导航