Python中最基本的数据结构是序列,序列中的每个元素被分配了一个序号即元素位置,也叫索引(从0开始),最后一个元素也可以标记位-1。
序列的元素可以是之前讲的所有基础数据类型,也可以是另一个序列,还可以是对象(后面介绍)。
最常用的序列有两类:元素(tuple)和列表(list)。两者的区别:列表可修改而元组不行。
1 列表
1.1 访问列表
通过下标,格式:[idx1][idx2][idx3]
animal = [‘Dog‘, ‘Cat‘, ‘Pig‘, [‘Duck‘, ‘Chicken‘, ‘Bird‘]] print(animal[1]) # Cat print(animal[3][1]) # Chicken print(animal[-1]) # [‘Duck‘, ‘Chicken‘, ‘Bird‘]
1.2 操作列表
1.2.1 修改列表元素
语法和访问列表元素类似,指定列表名和要修改元素的索引,再指定新值。
animal = [‘Dog‘, ‘Cat‘, ‘Pig‘, [‘Duck‘, ‘Chicken‘, ‘Bird‘]] animal[1] = ‘Sheep‘ # animal[3][1] = ‘Goose‘ # [‘Dog‘, ‘Sheep‘, ‘Pig‘, [‘Duck‘, ‘Goose‘, ‘Bird‘]] animal[-1] = ‘Rabbit‘ # [‘Dog‘, ‘Sheep‘, ‘Pig‘, ‘Rabbit‘] print(animal)
1.2.2 添加列表元素
(1)append( ):在列表末尾追加元素,也可用于动态创建列表。
student = [] student.append(‘Tom‘) print(student) # [‘Tom‘]
(2)insert( ):在列表的任何位置添加新元素
animal = [‘Duck‘, ‘Chicken‘, ‘Bird‘] animal.insert(2, ‘Dog‘) animal.insert(1, ‘Cat‘) print(animal) # [‘Duck‘, ‘Cat‘, ‘Chicken‘, ‘Dog‘, ‘Bird‘]
1.2.3 删除列表元素
(1)pop( ):移除列表中的一个元素(默认是末尾元素),可以指定元素索引,并且返回该元素的值
(2)del( ):如果知道要删除的元素在列表中的位置,可使用del语句删除,元素一旦被删除就再也无法访问。
(3)remove( ):当只知道元素值时,使用该方法
animal = [‘Duck‘, ‘Cat‘, ‘Chicken‘, ‘Dog‘, ‘Bird‘] print(animal.pop()) # Bird 返回值,默认删除末尾元素 print(animal.pop(1)) # Cat 返回值,指定索引 print(animal) # [‘Duck‘, ‘Chicken‘, ‘Dog‘] 删除后的列表 del animal[0] # 删除索引0,无返回值 print(animal) # [‘Chicken‘, ‘Dog‘] animal.remove(‘Dog‘) # 删除元素,无返回值 print(animal) # [‘Chicken‘]
1.2.4 查找列表元素
(1)in(存在):如果存在返回true,否则返回false
(2)not in(不存在):如果不存在返回true,否则返回false
animal = [‘Duck‘, ‘Cat‘, ‘Chicken‘, ‘Dog‘, ‘Bird‘] print(‘Chicken‘ in animal) # True print(‘Chicken‘ not in animal) # False
1.3 列表函数
students = [‘Jack‘, ‘Tom‘, ‘John‘, ‘Susan‘, ‘Tom‘] print(len(students)) # 返回列表元素个数 5 print(max(students)) # 返回元素最大值 Tom print(min(students)) # 返回元素最小值 Jack print(students.count(‘Tom‘)) # 返回某个元素出现的次数 2 print(students.index(‘Tom‘)) # 第一个匹配项的位置 1 students.extend([‘Frank‘, ‘Lucy‘]) # 扩展列表 [‘Jack‘, ‘Tom‘, ‘John‘, ‘Susan‘, ‘Tom‘, ‘Frank‘, ‘Lucy‘] print(students) students.reverse() # 反转列表 [‘Lucy‘, ‘Frank‘, ‘Tom‘, ‘Susan‘, ‘John‘, ‘Tom‘, ‘Jack‘] print(students) students.sort() # 列表元素排序,默认升序 [‘Frank‘, ‘Jack‘, ‘John‘, ‘Lucy‘, ‘Susan‘, ‘Tom‘, ‘Tom‘] print(students) students.clear() # 清空列表 [] print(students)
2 元组
2.1 元组操作
Python的元组和列表类似,不同之处在于元组不能被修改,但可以进行索引和连接操作(方法与列表相同),元组使用小括号创建,列表使用方括号创建。
students = (‘Jack‘, ‘Tom‘, ‘John‘, ‘Susan‘, ‘Tom‘) print(students[2]) # John 索引元组 del students # 彻底删除 name ‘students‘ is not defined 不可以删除某个元素 print(students)
2.2 元组函数
students = (‘Jack‘, ‘Tom‘, ‘John‘, ‘Susan‘, ‘Tom‘) print(len(students)) # 返回列表元素个数 5 print(max(students)) # 返回元素最大值 Tom print(min(students)) # 返回元素最小值 Jack print(tuple([1, 2, 3, 4])) # 将列表转换为元组 (1, 2, 3, 4)
3 字典
另一种可变容器类型,可以存储任意类型对象。列表元素通过索引进行修改,如果当前元素的顺序发生变化,还需要修改索引才能成功完成元素修改。而字典是通过键值查找元素,既能存储多个数据,又能很方便准确的定位元素。
3.1 字典操作
(1)访问字典元素:根据键访问
(2)修改字典元素:通过key找到具体元素后直接赋值
(3)添加字典元素:只要添加的键在字典中不存在,就会新增这个元素
(4)删除字典元素:del语句既可以删除指定字典元素(同列表),也可以删除整个字典;clealr()方法清空整个字典,字典还在但为空,del操作后字典不存在。
s = {‘name‘: ‘Bob‘, ‘age‘: 18, ‘sex‘: ‘Male‘} print(s) # 访问字典 {‘name‘: ‘Bob‘, ‘age‘: 18, ‘sex‘: ‘Male‘} print(s[‘sex‘]) # 访问字典元素 18 s[‘age‘] = 25 # 修改字典元素 {‘name‘: ‘Bob‘, ‘age‘: 25, ‘sex‘: ‘Male‘} print(s) s[‘Address‘] = ‘Shanghai‘ # 添加元素 {‘name‘: ‘Bob‘, ‘age‘: 25, ‘sex‘: ‘Male‘, ‘Address‘: ‘Shanghai‘} print(s) del s[‘name‘] # 删除字典中键值为‘name‘的元素 {‘age‘: 25, ‘sex‘: ‘Male‘, ‘Address‘: ‘Shanghai‘} print(s) s.clear() # 清空字典 {} print(s) del s print(s) # 删除字典 name ‘s‘ is not defined
3.2 字典函数和方法
(1)基本方法
s = {‘name‘: ‘Bob‘, ‘age‘: 18, ‘sex‘: ‘Male‘} print(len(s)) # 返回字典中元素个数 3 print(str(s)) # 将字典转换为字符串 {‘name‘: ‘Bob‘, ‘age‘: 18, ‘sex‘: ‘Male‘} print(type(s)) # <class ‘dict‘> print(type(str(s))) # 查看类型 <class ‘str‘>
(2)dict.fromkeys(seq, value)创建一个新字典,以序列seq中元素做键值,value为字典所有键对应的初始值
seq = (‘name‘, ‘age‘, ‘sex‘) dict1 = dict.fromkeys(seq) print(‘新字典为:‘, dict1) # 新字典为: {‘name‘: None, ‘age‘: None, ‘sex‘: None} dict2 = dict.fromkeys(seq, ‘jack‘) print(‘新字典为:‘, dict2) # 新字典为: {‘name‘: ‘jack‘, ‘age‘: ‘jack‘, ‘sex‘: ‘jack‘}
(3)dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
(4)key in dict如果键在字典中则返回true,否则返回false
(5)dict.keys( )以列表返回一个字典所有键
(6)dict.values( )以列表返回一个字典所有值
dict1 = {‘name‘: ‘tome‘, ‘age‘: 18} print(‘age键的值为:‘, dict1.get(‘age‘, 25)) # age键的值为: 18 print(‘sex键的值为:‘, dict1.get(‘sex‘, ‘男‘)) # sex键的值为: 男 print(dict1.keys()) # dict_keys([‘name‘, ‘age‘]) print(dict1.values()) # dict_values([‘tome‘, 18]) print(dict1.items()) # dict_items([(‘name‘, ‘tome‘), (‘age‘, 18)])
原文地址:https://www.cnblogs.com/wisefaith/p/12287320.html