一.列表
1.1 什么是列表
列表是一种有序的,可变的数据结构。列表由元素构成,每个元素对应一个下标(index),元素可以为任何类型。
列表嵌套会形成矩阵(二维数组)
1.2 列表如何定义及特性
用[]包住,元素间用 , 隔开
属于可变类型,支持增删改查,查看长度
list_test = list()
list_test.append('hello')
list_test.append(10)
list_test.append([1,2,3])
list_test.append(66)
print(list_test)
list_test.insert(1,100)
print(list_test)
list_test[2] = 66
list_test[0:2] = ['xinxin',0]
print(list_test)
print(list_test[3])
print(list_test[0:3])
list_test.pop(1)
list_test.remove(66)
del list_test[1:2]
list_test.clear()
print(list_test)
del list_test
1.3列表常用操作
1.3.1 列表合并
两种方法: 1.利用+合并,实际是赋值给新变量 2.利用extend,这个方法直接改变了原列表
list_1 = [1,2,3,4]
list_2 = [5,6,7,8,9]
list_join = list_1 + list_2
print(list_join)
list_1.extend(list_2)
print(list_1)
1.3.2 列表排序
正序:sort()倒序:sort(reverse = True) 临时排序:sorted(),不会改变原列表
list_1 = [1,100,300,4]
list_1.sort(reverse = True)
print(list_1)
1.3.3 列表反转
list_1 = ['我','爱','你']
list_1.reverse()
print(list_1)
1.3.4 列表元素数量统计
统计元素出现的个数
list_2 = [5,6,7,6,8,6,9]
print(list_2.count(6))
1.3.5自身复制
list_2 = [5,6,7,6,8,6,9]
new_list_2 = list_2 * 2
print(new_list_2)
1.3.6 列表长度
list_2 = [5,6,7,6,8,6,9]
print(len(list_2))
1.3.7列表复制
分位浅复制和深复制 深复制需引入copy库
list_old = [[1,2,3],[4,5,6]]
list_shallow = list_old.copy()
print(id(list_old))
print(id(list_shallow))
print(id(list_old[0]))
print(id(list_old[0]))
140684084155968
140684084155840
140684085061056
140684085061056
我们会发现最外层确实复制了,新列表分配了新的地址。但是内层列表地址还是相同的
import copy
list_old = [[1,2,3],[4,5,6]]
list_deep = copy.deepcopy(list_old)
print(id(list_old))
print(id(list_deep))
print(id(list_old[0]))
print(id(list_deep[0]))
140150716196736
140150716196096
140150716026048
140150716196800
内外层地址都不同
1.3.8内部元素处理
list_join = ['I','love','you']
print(' '.join(list_join))
list_split = ['你好,我是名学生,我正在学习Python']
new_list = list_split[0].split(',')
print(new_list)
list_1 = [1,2,3,4,5,1,5,3,2]
print(set(list_1))
1.3.9 列表解析
将想要新生成的数据代码和for循环写在一起
list_1 = [value*2 for value in range(1,11)]
print(list_1)
二.元组
2.1 什么是元组
与列表类似,但是内部值不可更改,也就不支持增删改。用()包住
创建只有一个元素的元组时,要在第一个元素后面加一个逗号 支持不加括号创建 需要改元组数据时,可以转换为列表操作
2.2 元组列表对比
元组优点:
- 大型数据处理速度快
- 对数据有保护功能
- 当函数返回多个值时,一般以元组方式返回
三.字典
3.1 什么是字典
储存具有一系列映射关系的数据结构,映射关系称为键值对(key:value),在pytohn中称item,全部键值对就是items {}包住,键值对间逗号隔开
test = {'name':'xinxin','age':20}
3.2字典特性
2不准:不准改变键,键不准重复 4支持:增删键和值,基于键改变值,基于键查询 2注意:只能使用不可变类型作为键;通常不使用数字作为键
3.3创建方法
dict_1 = dict()
dict_2 = dict{}
dict_3 = {'name':'xinxin','age':20}
dict_4 = dict({'name':'xinxin','age':20})
dict_5 = dict(name='mike',age=20)
基于列表建立字典
keys = ['姓名','年龄','祖籍']
new_dict = dict.fromkeys(keys,可以设置值,不设置默认none)
print(new_dict)
3.4增删改查
dict_1 = {'name':'xinxin','age':20}
dict_1['gender'] = '男'
print(dict_1)
dict_1['age'] = '22'
print(dict_1)
dict_1['name']
dict_1.get('name')
del dict_1['gender']
print(dict_1)
dict_1.pop('age')
print(dict_1)
dict_1.clear()
print(dict_1)
3.5常用操作
3.5.1 返回字典的键值对,键,值
dict_1 = {'name':'xinxin','age':20}
for k,v in dict_1.items():
print(k,v)
dict_1 = {'name':'xinxin','age':20}
for k in dict_1.keys():
print(k)
dict_1 = {'name':'xinxin','age':20}
for v in dict_1.values():
print(v)
3.5.2 字典合并
dict_1 = {'name':'xinxin','age':20}
dict_2 = {'name':'Jane','age':20,'gender':'女'}
dict_1.update(dict_2)
print(dict_1)
有重复的key,就会更新key值,没有就会添加
3.5.3 查询键,不存在则添加
dict_1 = {'name':'xinxin','age':20}
print(dict_1.setdefault('gender',可设置值))
|