Python基础
- Python基础-PEP8: Python代码风格指南
- Python基础-面向对象(四)
- Python基础-面向对象(三)
- Python基础-面向对象(二)
- Python基础-面向对象(一)
- Python基础-模块
- Python基础-异常的捕获和处理
- Python基础-文件夹的操作
- Python基础-文件的操作
- Python基础-函数(三)
- Python基础-函数(二)
- Python基础-函数(一)
- Python基础-字符串,元组,列表,字典,集合之间的相互转
- Python基础-字符串,元组,数组,字典-公共方法
- Python基础-集合set
- Python基础-字典
- Python基础-元组
- Python基础-列表
- Python基础-字符串
- Python基础-break和continue
- Python基础-for循环
- Python基础-while循环
- Python基础-if判断语句
- Python基础-数据类型转换,ASCII码对照表
- Python基础-运算符
- Python基础-输出print和输入input
- Python基础-标识符和关键字
- Python基础-变量以及类型
- Python基础-注释的引入
- Python基础-第一个python程序
- Python基础-简介
Python基础-列表
Python列表
列表介绍:
前面学习的字符串可以用来存储一串信息,Python列表是用来存放多个字符串或者变量等,Python列表中的元素可以是不同类型的。
列表的格式:变量A的类型为列表namesList = ['xiaoWang','xiaoZhang','xiaoHua']
比C语言的数组强大的地方在于列表中的元素可以是不同类型的:testList = [1, 'a']
列表的循环遍历:
1. 使用while循环:
namesList = ['xiaoWang','xiaoZhang','xiaoHua'] length = len(namesList) i = 0 while i<length: print(namesList[i]) i+=1 ''' 输出结果: xiaoWang xiaoZhang xiaoHua '''
1. 使用for循环:
namesList = ['xiaoWang','xiaoZhang','xiaoHua'] for name in namesList: print(name) ''' 结果 xiaoWang xiaoZhang xiaoHua '''
列表的相关操作
1,添加元素:
1.1通过append可以向列表添加元素
my_list = ['laofeng', 'laowang', 'laoli'] name = 'laozhou' my_list.append(name) for n in my_list: print(n) ''' 输出结果 laofeng laowang laoli laozhou '''
1.2,extend:通过extend可以将另一个集合中的元素逐一添加到列表中
a = [1, 2] b = [3,4] a.extend(b) # a此时是一个列表[1,2,3,4] for i in a: print(i) ''' 输出结果: 1 2 3 4 '''
1.3,insert:nsert(index, object) 在指定位置index前插入元素object
a = [1, 2, 3] a.insert(3,4) # for i in a: print(i) ''' 输出结果: 1 2 3 4 '''
2,修改元素:修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
name = ['xiaoWang', 'xiaoZhang', 'xiaoHua'] name[1] = 'xiaoLu' # 修改name[1]的值为xiaoLu for n in name: print(n) ''' 结果 xiaoWang xiaoLu xiaoHua '''
3,查找元素("查"in, not in, index, count),所谓的查找,就是看看指定的元素是否存在
in, not in:判断元素是否在列表中,返回True或者False
nameList = ['xiaoWang','xiaoZhang','xiaoHua'] findName = 'xiaoZhang' if findName in nameList: print('在列表中找到了相同的名字') else: print('没有找到') #结果 在列表中找到了相同的名字 # 说明:in的方法只要会用了,那么not in也是同样的用法,只不过not in判断的是不存在
index和count与字符串中的用法相同,返回下标位置
a = ['a', 'b', 'c', 'a', 'd'] print(a.index('d', 1, 4)) # 不存在,报错 print(a.index('a', 1, 4)) # 结果:3,在下标1到4(不包括4)之间查找'a' print(a.count('b')) # 结果:1 print(a.count('f')) # 结果:0,表示没找到
4,删除元素("删"del, pop, remove)
del:根据下标进行删除
pop:删除最后一个元素,也可以删除相应下标的元素
remove:根据元素的值进行删除
name = ['a', 'b', 'c', 'a', 'd', 'e'] del name[2] # 删除下标为2的元素,即'c' name.pop() # 删除最后一个元素,即'e' name.pop(0) # 删除第一个元素 name.remove('a') # 删除第一内容为'a'的元素 for n in name: print(n) ''' 结果 b d '''
5,排序(sort, reverse)
sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
reverse方法是将list倒序。
list = ['c', 'b', 'a', 'd'] list.sort() # 从小到大 for l in list: print(l) # 结果:abcd rev = ['c', 'b', 'a', 'd'] rev.reverse() # 倒序 for r in rev: print(r) #结果:dabc l_rev = ['c', 'b', 'a', 'd'] l_rev.sort(reverse=True) # 先从小到变成abcd,再倒序变成dcbd for l_r in l_rev: print(l_r) # 结果dcba
列表嵌套
类似while循环的嵌套,列表也是支持嵌套的
一个列表中的元素又是一个列表,那么这就是列表的嵌套
s_names = [['北京大学','清华大学'],['南开大学','天津大学','天津师范大学'],['山东大学','中国海洋大学']] print(s_names[1]) # ['南开大学', '天津大学', '天津师范大学'] print(s_names[1][0]) # 南开大学 for s in s_names[2]: print(s,end=' ') #山东大学 中国海洋大学
多维数组转化成一维数组
s_names = [['北京大学','清华大学'],('南开大学','天津大学','天津师范大学'),['山东大学','中国海洋大学']] from itertools import chain list(chain.from_iterable(s_names)) print(list(chain.from_iterable(s_names))) # 将多维数组转换成一维数组 # 输出结果为:['北京大学', '清华大学', '南开大学', '天津大学', '天津师范大学', '山东大学', '中国海洋大学']
列表推倒式
所谓的列表推导式,就是指的轻量级循环创建列表
1. 基本的方式
list = [x for x in range(6)] print(list) # [0, 1, 2, 3, 4, 5]
2. 在循环的过程中使用if
list = [x for x in range(6) if x%2==0] print(list) #[0, 2, 4]
3. 2个for循环
list = [(x,y) for x in range(6) if x%2==0 for y in range(6) if y%2!=0] print(list) #[(0, 1), (0, 3), (0, 5), (2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)]
4. 3个for循环
list = [(x,y,z) for x in range(6) if x%2==0 for y in range(6) if y%2!=0 for z in range(2)] print(list) #[(0, 1, 0), (0, 1, 1), (0, 3, 0), (0, 3, 1), (0, 5, 0), (0, 5, 1), # (2, 1, 0), (2, 1, 1), (2, 3, 0), (2, 3, 1), (2, 5, 0), (2, 5, 1), # (4, 1, 0), (4, 1, 1), (4, 3, 0), (4, 3, 1), (4, 5, 0), (4, 5, 1)]
最后修改:2020年2月25日 11:02