专栏介绍:
本专栏为Python全栈开发系列文章,技术包括Python基础、函数、文件、面向对象、网络编程、并发编程、MySQL数据库、HTML、JavaScript、CSS、JQuery、bootstrap、WSGI、Django、Flask、后期运维、git使用、Linux运维、Python结合Shell结合场景开发自动化脚本等一系列文章. 从入门到实战。 文章内容来自博主学习笔记,修整发布。
在本博客中,
python
是一个系列文章,如果你还不明白Python
的相关概念,强烈建议从Python
系列文章中的第一篇开始阅读,否则你可能无法理解这篇文章中涉及到的部分名词。
全栈目录导航:https://yankerp./article/details/126314634
目录:
专栏介绍:一、列表1.1 列表的作用:1.2 列表的定义1.3 列表转换1.3.1 字符串:1.3.2 字典1.3.3 元祖:1.4 内置方法1.4.1 按照索引取值,正向取反向取:1.4.2 切片操作(顾头不顾尾的操作)1.4.3 长度:(len)1.4.4 成员运算符in & not in1.4.5 追加[append]1.4.6 插入值1.4.7 删除值1.4.8 列表循环2.1 列表的其他方法:2.1.1 count方法:2.1.2 reverse方法:2.1.3 clear方法:2.1.4 sort方法:2.1.5 结合reverse升序降序:2.1.6 copy浅拷贝2.1.7 index方法:二、元组(不可变的列表)2.1 作用2.2 定义2.3 类型转换2.3.1 字符串:2.3.2 字典:2.3.3 列表:2.4 内置方法2.4.1 按索引取值「正向取、反向取」2.4.2 切片2.4.3 长度2.4.4 成员运算符in not in2.4.5 循环2.5 元组的内置方法:三、字典3.1 作用3.2 定义3.3 类型转换3.4 内置方法3.4.1 按key取值可存可取3.4.2 长度len3.4.3 成员运算符 in和not in3.4.4 删除3.4.5 clear:直接清空字典3.4.6 setdefault方法3.4.7 update方法总结:结束:一、列表
1.1 列表的作用:
列表的作用就是存储一个或者多个任意类型的数据类型,通过index可查可取得一种数据类型
1.2 列表的定义
l = [111,222,333] # l = list([111,222,333])
列表的定义原则上来讲就是list()定义一个列表
1.3 列表转换
列表可以将一切可以通过for循环的数据类型转换为列表,实际上list列表的转换就是调用了一个for循环来实现的。
1.3.1 字符串:
res = list("my name is yanzan")l = []for x in "my name is yanzan":l.append(x)
1.3.2 字典
字典:res2 = list({'name' : "yanzan", 'password' : ""})# print(type(res2), res2)
1.3.3 元祖:
>>> print(list((000,111,222,333))... )[0, 111, 222, 333]>>>
1.4 内置方法
1.4.1 按照索引取值,正向取反向取:
>>> name = ['aaa' ,'bbb']>>> name[1]'bbb'>>> name[-1]'bbb'>>> name[0]'aaa'>>>
可以按照index来进行赋值操作:
>>> name = ['aaa' ,'bbb']>>> name[1] = 333>>> print(name)['aaa', 333]
当index不存在的时候会直接报错,无论是取值还是赋值都是会报错的。
1.4.2 切片操作(顾头不顾尾的操作)
>>> name = ['aaa' ,'bbb','ccc','ddd','eee','fff','ggg']>>> name[0:]['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg']>>> name[1:]['bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg']>>> name[0:6:2]['aaa', 'ccc', 'eee']>>>
反向切片:
>>> name = ['aaa' ,'bbb','ccc','ddd','eee','fff','ggg']>>> name[:-1]['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff']>>>
1.4.3 长度:(len)
>>> name = ['aaa' ,'bbb','ccc','ddd','eee','fff','ggg']>>> len(name)7>>>
1.4.4 成员运算符in & not in
>>> name = ['aaa' ,'bbb','ccc','ddd','eee','fff','ggg']>>> print('aaa' in name)True>>> print('aaa' not in name)False>>>
1.4.5 追加[append]
>>> info = ['aaa','bbb']>>> info.append('ccc')>>> print(info)['aaa', 'bbb', 'ccc']>>>
1.4.6 插入值
>>> info = ['aaa','bbb']>>> info['aaa', 'bbb']>>> info.insert(2, 'ccc')>>> print(info)['aaa', 'bbb', 'ccc']>>>
insert 就是插入值,以上的意思就是在index 2号索引插入一个ccc的字符串。如果insert的index索引号写的不存在这个索引也没有关系,默认还是在末尾添加插入一个值。
插入值的一个extend的方法:
>>> info = ['aaa','bbb']>>> info['aaa', 'bbb']>>> info2 = ['ccc','ddd','fff']>>> info.extend(info2)>>> print(info)['aaa', 'bbb', 'ccc', 'ddd', 'fff']>>>
extend方法是将一个列表其中的数据追加到另外一个列表当中
1.4.7 删除值
方式一:通过del方式>>> info = ['aaa','bbb','ccc']>>> info['aaa', 'bbb', 'ccc']>>> del(info[0])>>> print(info)['bbb', 'ccc']
方式二:通过list.popdel 删除列表当中的index,若在del删除index过程当中index并不存在则直接报错。
>>> info = ['aaa','bbb','ccc']>>> info.pop(1)'bbb'>>> info.pop(9)Traceback (most recent call last):File "<stdin>", line 1, in <module>IndexError: pop index out of range>>>
方式三:list.remove方法使用list.pop的方式通过pop括号内填写index值,若index值存在则进行删除并且返回删除的值信息,若index不存在则直接报错。
>>> info = ['aaa','bbb','ccc']>>> info.remove('aaa')>>> info.remove('bbb')>>> info.remove('ccc')>>> info.remove('ddd')Traceback (most recent call last):File "<stdin>", line 1, in <module>ValueError: list.remove(x): x not in list>>>
remove删除列表当中的元素,remove是通过列表的值删除,而不是通过index去删除、若删除的元素不存在则直接报错。
在使用列表删除的功能当中使用remove和pop的是最多的,一个是可以通过index删除并且有返回值,另外一个是通过remove删除指定的一个值。
1.4.8 列表循环
>>> info = ['aaa','bbb','ccc']>>> for x in info:...print(x)... aaabbbccc>>>
2.1 列表的其他方法:
info.count()
info.reverse()
info.clear()
info.sort()
info.copy()
info.index()
2.1.1 count方法:
统计这个aaa字符串在这个列表中有多少个
>>> info = ['aaa','bbb','ccc','ddd']>>> info.count('aaa')1>>>
2.1.2 reverse方法:
reverse方法是将列表当中的元素反过来。
>>> info.reverse()>>> print(info)['ddd', 'ccc', 'bbb', 'aaa']
2.1.3 clear方法:
清空列表
>>> info = ['aaa','bbb','ccc','ddd']>>> info.clear()>>> info[]
2.1.4 sort方法:
排序
>>> info = [222,111,333,666,999,444,1.1,2.2,0.1]>>> info.sort()>>> info[0.1, 1.1, 2.2, 111, 222, 333, 444, 666, 999]>>>
2.1.5 结合reverse升序降序:
>>> info = [222,111,333,666,999,444,1.1,2.2,0.1]>>> print(info.sort(reverse=False))None>>> info.sort()>>> print(info)[0.1, 1.1, 2.2, 111, 222, 333, 444, 666, 999]>>> info.sort(reverse=False)>>> info[0.1, 1.1, 2.2, 111, 222, 333, 444, 666, 999]>>> info.sort(reverse=True)>>> info[999, 666, 444, 333, 222, 111, 2.2, 1.1, 0.1]>>>
2.1.6 copy浅拷贝
>>> info = [222,111,333,666,999,444,1.1,2.2,0.1]>>> info2 = info.copy()>>> info2[222, 111, 333, 666, 999, 444, 1.1, 2.2, 0.1]>>>
2.1.7 index方法:
>>> info = [222,111,333,666,999,444,1.1,2.2,0.1]>>> info.index(0.1)8>>>
index方法就是查看括号中内容在列表当中的index是多少。查看位置。
二、元组(不可变的列表)
2.1 作用
元组的作用主要是用来读数据用,因为元组属于不可变类型,它不像列表一样可以存也可以取也可以改,元组是不可改变的。只能用于读,不可以用于改
2.2 定义
>>> infoname = ('yanzan', 'zhangsan', 'lisi') # infoname = tuple('yanzan','zhangsan','lisi,)>>> print(infoname, type(infoname))('yanzan', 'zhangsan', 'lisi') <class 'tuple'>>>>
2.3 类型转换
tuple和list的类型转换都是一样的,都是可以将凡是能够通过for循环循环的数据类型都可以进行转换
2.3.1 字符串:
>>> name = 'yanzan'>>> tuple(name)('y', 'a', 'n', 'z', 'a', 'n')>>>
2.3.2 字典:
>>> nameinfo = {'name':'yanzan','age':19}>>> tuple(nameinfo)('name', 'age')>>>
2.3.3 列表:
>>> nameinfo = ['yanzan','zhangsan','lisi']>>> tuple(nameinfo)('yanzan', 'zhangsan', 'lisi')>>>
2.4 内置方法
2.4.1 按索引取值「正向取、反向取」
>>> name2('yanzan', 'zhangsan', 'lisi')>>> name2[0]'yanzan'>>> name2[-1]'lisi'>>>
2.4.2 切片
>>> name2('yanzan', 'zhangsan', 'lisi')>>> name2[0:]('yanzan', 'zhangsan', 'lisi')>>> name2[:-1]('yanzan', 'zhangsan')>>>
2.4.3 长度
>>> name2('yanzan', 'zhangsan', 'lisi')>>> len(name2)3>>>
2.4.4 成员运算符in not in
>>> name2('yanzan', 'zhangsan', 'lisi')>>> print('yanzan' in name2)True>>> print('yanzan' not in name2)False>>>
2.4.5 循环
>>> name2('yanzan', 'zhangsan', 'lisi')>>> for x in name2:...print(x)... yanzanzhangsanlisi>>>
2.5 元组的内置方法:
index: 是查看元组当中zhangsan这个字符index在哪里它的一个位置count:是查看lisi在元组当中出现了多少次或者有几个>>> name2('yanzan', 'zhangsan', 'lisi')>>> name2.count('lisi')1>>> name2.index('zhangsan')1>>>
三、字典
3.1 作用
字典也是存储数据值的,一个字典当中可以存放任意的数据类型,和列表不同的是字典是具备有描述信息,可以更方便的存储数据
3.2 定义
nameinfo = {'name' : 'yanzan','age' : 19}
3.3 类型转换
nameinfo = [['name', 'yanzan'],['age', 19]]print(dict(nameinfo))
3.4 内置方法
3.4.1 按key取值可存可取
>>> name = {'name':'yanzan','age':19}>>> name['name'] = 'zhangsan'>>> name['url'] = ''>>> name{'name': 'zhangsan', 'age': 19, 'url': ''}>>>
以上如果key存在的话会直接更改key对应的值,若这个key不存在的话会直接添加key对应值。
3.4.2 长度len
>>> name{'name': 'lisi', 'age': 19}>>> len(name)2
len在字典当中是查看有多少个key
3.4.3 成员运算符 in和not in
{'name': 'yanzan', 'age': 19, 'url': 'www'}>>> print('yanzan' in nameinfo)False>>> print('name' in nameinfo)True>>>
成员运算符in在字典当中是查看有没有这个key而不是value值
3.4.4 删除
通用的删除方式:del>>> nameinfo{'name': 'yanzan', 'age': 19, 'url': 'www'}>>> del(nameinfo['name'])>>> nameinfo{'age': 19, 'url': 'www'}>>>
pop方式
>>> nameinfo{'name': 'yanzan', 'age': 19, 'url': 'www'}>>> nameinfo.pop('name')'yanzan'>>> nameinfo.pop('name')Traceback (most recent call last):File "<stdin>", line 1, in <module>KeyError: 'name'>>>
pop.item方式字典当中的pop和列表一样,都是用来删除的并且能返回被删除的值信息,如果pop括号内的key不存在的话会直接报错
>>> nameinfo{'age': 19, 'url': 'www'}>>> nameinfo = {'name':'yanzan','age':19, 'url' : 'www'}>>> nameinfo.popitem()('url', 'www')>>> nameinfo.popitem()('age', 19)>>> nameinfo.popitem()('name', 'yanzan')
pop.items方式就是随机删除,删除后会返回删除的key和value都会一起返回。返回的还是一个元组,元组里面对应的key和value
keys、values、items
n = {}info = {"name" : "yanzan"}info1 = [('name', 'yanzan')]for x in info1:print("这是元组当中第一个元素:{name},第二个元素是{values}".format(name=x[0], values=x[1]))print(x)aaa = ('name', 'yanzan')a, b =aaaprint(f"这是元组的一个解压赋值:{a} {b}") # 验证了这一点
3.4.5 clear:直接清空字典
>>> nameinfo = {'name':'yanzan','age':19, 'url' : 'www'}>>> nameinfo.clear()>>> nameinfo{}>>>
3.4.6 setdefault方法
>>> nameinfo = {'name':'yanzan','age':19, 'url' : 'www'}>>> nameinfo['name'] = 'zhangsan'>>> nameinfo{'name': 'zhangsan', 'age': 19, 'url': 'www'}>>> nameinfo.setdefault('name', 'lisi')'zhangsan'>>> nameinfo{'name': 'zhangsan', 'age': 19, 'url': 'www'}>>> nameinfo.setdefault('aaaaa', 'lisi')'lisi'>>> nameinfo{'name': 'zhangsan', 'age': 19, 'url': 'www', 'aaaaa': 'lisi'}>>>
3.4.7 update方法
>>> xin_dict = {11111111111111 : 22222222222222222}>>> nameinfo.update(xin_dict)>>> nameinfo{'name': 'zhangsan', 'age': 19, 'url': 'www', 'aaaaa': 'lisi', 11111111111111: 22222222222222222}>>>
总结:
列表、元组、字典都为容器类型
列表字典可变类型、元组属于不可变类型
元组是一个不可变类型的列表,只能读不能写不能修改,如果列表当中有很多数据但是永远都不会改变的话可以存放到元组,因为元组占用的内存空间资源少。