Python数据结构大合集|元祖、列表、字典和集合详解,助你简明扼要学Python

python中的数据结构主要有:

列表 List

元组tuple

字典 dict

集合set

1.列表List

列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

对列表的操作:

创建列表

list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ["a", "b", "c", "d"] list4=[randint(-10,10) for _ in range(10)]#_表示一个零时变量,for后面这部分其实就是表示生成是个元素,每次是从-10到10的一个随机整数作为这个list的元素。 list5=[x for x in range(1,15,3)]

运行结果

['physics', 'chemistry', 1997, 2000] [1, 2, 3, 4, 5] ["a", "b", "c", "d"] [-7, -6, 4, 1, -3, 4, 9, -8, -9, -8] [1, 4, 7, 10, 13]

访问列表中元素的值

list1 = [1, 2, 3, 4, 5, 6, 7 ] print(list1[0]) print(list1[1:5])

运行结果:

1 [2, 3, 4, 5]

更新列表

可以通过列表的索引直接修改元素,也可以通过append()方法来给列表添加元素

list = ['physics', 'chemistry', 1997, 2000] list[2]='3000'#直接修改列表元素 list.append('new element') list

运行结果:

['physics', 'chemistry', ‘3000’, 2000, 'new element']

删除列表元素

list1 = ['physics', 'chemistry', 1997, 2000] del list1[2]#删除第三个元素 list1

运行结果

['physics', 'chemistry', 2000]

列表操作包含以下函数:

  1. cmp(list1, list2):比较两个列表的元素
  2. len(list):列表元素个数
  3. max(list):返回列表元素最大值
  4. min(list):返回列表元素最小值
  5. list(seq):将元组转换为列表

列表操作包含以下方法:

  1. list.append(obj):在列表末尾添加新的对象
  2. list.count(obj):统计某个元素在列表中出现的次数
  3. list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
  4. list.index(obj):从列表中找出某个值第一个匹配项的索引位置
  5. list.insert(index, obj):将对象插入列表
  6. list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
  7. list.remove(obj):移除列表中某个值的第一个匹配项
  8. list.reverse():反向列表中元素
  9. list.sort([func]):对原列表进行排序

2、元组

元组的学习一般是和列表做对比学习的,元组的格式相比于列表变成了小括号。

学习元组主要注意一下问题:

元组不可变性:

a = (1,2)

a[0] = 2 会报错TypeError: ‘tuple’ object does not support item assignment。

a = (1,2,[1,2,3])

a [2][1] = 0 是可以的

元组的不可变性是指元组的元素指向的数据不可变。所以tuple不变的是指向,指向什么就一直是什么,不能改变。

元组的相加:

a=(1,2,3,4) id(a) b=(3,4,5) a=a+b id(a) a

运行结果:

120091534616 120120326072 (1, 2, 3, 4, 5, 3, 4, 5)

这里两次输出a的id不相同,说明他们是不同的对象,刚开始a=(1,2,3,4),后面讲a+b组合的一个元组重新赋值给a,不是a变了,原来的那个元组也没有变,只是没有了引用,最后会被当做垃圾回收。

元组的删除:

tup = (1,2,3,4);

del tup[0];

此时会报错TypeError: ‘tuple’ object doesn’t support item deletion

元组访问及切片:

a = (1,2,[3,4])

a[0]指向1,a[2][1]指向4

a[:1]指向一个子元组(1,2)

元组操作

  • cmp(tuple1, tuple2):比较两个元组元素。
  • len(tuple):计算元组元素个数。
  • max(tuple):返回元组中元素最大值。
  • min(tuple):返回元组中元素最小值。
  • tuple(seq):将列表转换为元组。

cmp(),len(),min(),max()都是序列的内置函数,tuple也是序列,所以可以用内置函数操作。tuple()是工厂函数。

3、字典

字典是另一种可变容器模型,且可存储任意类型对象。

具有以下特点:

  1. 元素由键(key)和值(value)组成
  2. 可以用dict()函数或者方括号()创建,元素之间用逗号’,‘’分隔,键与值之间用冒号”:”隔开
  3. 键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组
  4. 使用键(key)来访问元素
# 用dict()函数创建 dict1 = dict([('name', 'kyda'), ('e', 10)]) # 用{}创建 dict2 = {'name': 'lin', 'age': 21} print(dict1) # 使用键(key)来访问元素 print(dict2['name']) # 使用键(key)来访问元素,并修改元素的值 dict2['age'] = 23 print(dict2)

结果:

{'name': 'kyda', 'age': 10} lin {'name': 'lin', 'age': 23}

字典的方法:

4、集合

具有以下特点:

  1. 可以用set()函数或者方括号{}创建,元素之间用逗号”,”分隔。
  2. 与字典相比少了键
  3. 不可索引,不可切片
  4. 不可以有重复元素
# 两种方法创建 set1 = set('kydaa') set2 = {'abc', 'jaja', 'abc', 'kyda'} print(set1) print(set2)

结果:自动将重复元素去除

{'a', 'y', 'd', 'k'} {'jaja', 'abc', 'kyda'}

关系测试:

>>> x = {1,2,3,4} >>> y = {3,4,5,6} >>> x & y #交集 set([3, 4]) >>> x | y #并集 set([1, 2, 3, 4, 5, 6]) >>> x - y #差集,x有但是y没有的 set([1, 2]) >>> x ^ y #对称差集 set([1, 2, 5, 6])

集合的方法:

以上就是小编整理的Python数据结构,感觉不错的话请大家多多点赞评论转发,关注小编,后续小编会为大家带来更多的内容,希望大家能够喜欢~~~~

你们的支持就是小编最大的动力!!!!!

猜你喜欢

转载自blog.csdn.net/python6_quanzhan/article/details/106383087
今日推荐