Python中的内置结构分为列表,元组,集合,字典等等,今天来给大家讲一讲我自己的理解。
一:列表
列表一般是用来存储一组有序数据元素的数据结构, 元素之间用逗号分隔。 列表中的数据元素应该包括在方括号中, 列表是可变的数据类型, 一旦创建了一个列表, 可以添加、 删除或者搜索列表中的元素。
列表中的元素不必是相同的类型。如果只有一对方括号而没有任何元素则表示空列表
比如:[],[10,20,30,40],['a',"b","c","d"]
“=”可以直接将创建的列表赋给变量:
age_list = [1, 2, 3, 10]
name_list = ['Jack', 'Tom', 'Rock']
print(age_list)
print(name_list)
用type查看列表的类型:
print(type(age_list))
列表页可以像字符串一样与一个数字相乘,可以实现复制功能
new_name_list =name_list * 3
print(new_name_list)
列表获取指定位置的元素利用的方法和字符串索引是一致的, 主要有普通索引和切片索引两种
普通索引:
普通索引是获取某一特定位置的元素
animal_list = ['Dog', 'Cat', 'Fish', 'Duck']
print(animal_list[0])
print(animal_list[-1])
切片索引:
切片索引是获取某一位置区间的元素
print(animal_list[1:3])
字符串无法通过制定位置修改该位置的内容,而列表可以:
num_list = [1, 2, 3, 4, 5, 6]
other_list = [1, 2, 3, 4, 5, 6]
num_list[0] = 100other_list[2:] = [300, 400, 500, 600]
print(num_list)
print(other_list)
序号 | 函数名 | 函数说明 |
1 | append() | 在列表尾部追加新的元素 |
2 | count() | 统计元素在列表中出现的次数 |
3 | extend() | 在列表末尾一次性追加另一个序列中的多个值 |
4 | insert() | 将对象插入列表中 |
5 | pop() | 移除列表中的一个元素,并返回该元素的值 |
6 | reverse() | 对列表中的元素反向存储 |
7 | sort() | 对列表进行排序 |
8 | index() | 在列表中找出某个值第一次出现的位置 |
9 | remove() | 用于移除列表中某个值的第一个匹配项 |
10 | len() | 返回列表元素个数 |
11 | max() | 返回列表元素中的最大值 |
12 | min() | 返回列表元素中的最小值 |
元组
元组是序列数据结构的另一个重要类型,元组与列表非常类似,唯一的不同是元组一经定义,其内容就不能修改。从形式上,元组的所有元素放在一对括号中,元素之间使用逗号分隔,如果元组中只有一个元素则必须在最后增加一个逗号。
元组的创建非常简单,可以直接用逗号分隔来创建一个元组:
tuple1 = (1,2,3)
tuple2 = (10,)#这是只有一个元素的元组
tuple3 = ('Tom', 'Jack', 'Rose')
print(tuple1)
print(tuple2)
print(tuple3)
元组内元素的获取方法主要是普通索引和切片索引
普通索引:
print(tuple1[0])
print(tuple1[-1])
切片索引:
tuple4 = (10,20,30,40,50)
print(tuple4[2:])
元组是不能改变的和字符串一样
集合
集合(set)属于Python数据结构中的无序可变序列,使用一对大括号作为定界符,元素之间使用逗号分隔,同一个集合内的每个元素都是唯一的,元素之间不允许重复。集合中只能包含数字、字符串、元组等不可变类型的数据,而不能包含列表、字典、集合等可变类型的数据。
当集合中有True、False、1、0时谨慎处理!
创建集合:
num_set = {1,2,3,4,5,1,5,6}
print(num_set
可以为字典添加元素:
num_set.add(100)
集合是无序的,因为集合没有顺序,因此不能使用索引访问元素。另外也不能通过索引删除元素
pop函数会随机删除并返回集合中的一个元素:
element =num_set.pop()
print(element)
print(num_set)
remove()函数则是通过指定元素删除集合中的该元素,如果指定元素不存在则会报错:
num_set4 = {1,2,3,4,5,6}
num_set4.remove(4)
print(num_set)
创建集合的时要注意,集合类型在Python中用set表示,可以通过type函数查看:
date={1,2,3}
print(type(data))
想要正确的创建一个空集合,你需要:
num_set5 = set()
type(num_set5)
字典
字典是包含若干“键:值”元素的无序可变序列,字典中的每个元素包含用冒号分隔开的“键”和“值”两部分,表示一种映射或对应关系
建立一个空字典:
dict1 = {}
print(dict1)
print(type(dict1))
向字典输入值:
dict1['name'] = 'Tom'
dict2['age'] = 20
print(dict1)
将值直接以键值对的形式在创建的时候传入字典中:
dict2 = {'name':'Tom', 'age':10}
print(dict2)
工厂函数
创建一个空列表:
empty_list = list()
empty_list
创建了一个空集合:
empty_set = set()
empty_set
创建了一个空字典:
empty_dict = dict()
empty_dict
创建一个空元组:
empty_tuple = tuple()
empty_tuple
结构间的转换
通过函数,把字符串转化为列表等等
list1 = list("abcdefg")
把元组转化为列表:
list2 = list((1,2,3,4))
还可以把集合转化为列表:
list3 = list({1,2,3,4,5,6})
等等等等,每个数据结构的函数都能用来互相转化。
结构嵌套
结构是可以嵌套使用的,也就是一些结构可以作为另一个结构的元素
列表包含列表:
nest_list = [1,2,3, ['a', 'b', 'c'] ]
print(nest_list)
print(len(nest_list))
列表包含元组:
nest_list2 = [1,2,3, ('a', 'b', 'c') ]
print(nest_list2)
print(len(nest_list2))
元组嵌套列表:
nest_tuple = ([1,2], [3,4])
print(nest_tuple)
print(len(nest_tuple))
把嵌套元组或嵌套列表转换成字典,有两种写法:
第一种:
dict1=dict([('key1',100),('key2',200)])
print(dict1)
第二种:
dict(key1 = 100,key2 = 200)
好了,Python的内置数据结构就这么多,其实静下心来慢慢理解还是可以理解的