Python基础语法之列表

1、序列(sequence)

1.1序列的基本概念

			序列是Python中最基本的一种数据结构。序列用于保存一组有序的数据,所有的数据在序列中都有唯一的位置(索引index)并且序列中的数据会按照添加的顺序来分配索引.

1.2序列的分类

			可变序列(序列中的元素可以被改变):例如 列表(list)、字典(dict)
			不可变序列(序列中的元素不能被改变)。例如 字符串(str)、元组(tuple)

2.列表(list)

2.1列表的定义

		列表是Python中的一个对象
		列表的作用
				列表中可以保存多个有序的数据
				列表是用来存储对象的对象。(一个列表当中可以存储元素,也可以在创建的时候指定列表当中的元素,列表中添加多个元素的时候用“,”来隔开,列表中可以存储任意的对象)
				比如 lst =[1,2,3,4,5] 或者 lst1 = [1,'python',None,True,[1,2,3]]

2.2列表的使用

			我们将数据存储到列表中,将如何再取出一个一个数据能,这就得用索引(index)了,因为数据在序列中都有唯一的位置就是索引(index)。,因此我们可以用索引(index)来获取列表当中的元素。比如lst[0],lst[1],lst[2]等
			索引就是元素在列表中的位置,而且索引都是从0开始的,列表的第一个位置是0,第二个是1,以此类推
			当索引大于列表的数量时将报超出最大索引范围print(lis[10]) NameError: name 'lis' is not defined
			索引可以是负数,当索引是负数的时候从最后开始取数,比如-1取最后个数据,-2取倒数第二个,以此类推,当这个数据超过最大索引的时候将会报超出最大索引范围

2.3切片

		切片是指从现有的列表中获取一个子列表
		hero = ['钢铁侠','绿巨人','蜘蛛侠','黑寡妇','蚁人','美国队长']
		语法 列表【起始:结束】
		通过切片获取元素时,会包含起始位置的元素,不会包含结束位置的元素
		print(hero[0:2])   ['钢铁侠', '绿巨人']
		做切片操作时,总会返回一个新的列表,但不会影响原来的列表
		起始位置和结束位置的索引可以不写,如果省略结束位置,则总开始的位置到最后
		print(hero[2:])    ['蜘蛛侠', '黑寡妇', '蚁人', '美国队长']
		如果省略开始位置,则会从第一个元素截取到结束位置的元素,但是不包括结束的元素。
		print(hero[:4])     ['钢铁侠', '绿巨人', '蜘蛛侠', '黑寡妇']
		如果开始位置和结束位置都省略,则会从第一个元素截取到最后一个元素
		print(hero[:])		['钢铁侠', '绿巨人', '蜘蛛侠', '黑寡妇', '蚁人', '美国队长']
		 步长:步长表示每次获取元素的间隔,默认为1,可以省略不写,步长不能为0
		 print(hero[0:5:1])		['钢铁侠', '绿巨人', '蜘蛛侠', '黑寡妇', '蚁人']
		 print(hero[0:5:2])		['钢铁侠', '蜘蛛侠', '蚁人']
		 步长为负数,则列表从后面往前面取数
		 print(hero[::-1])		['美国队长', '蚁人', '黑寡妇', '蜘蛛侠', '绿巨人', '钢铁侠']

3通用操作

		+ 和*
		+ 表示可以将2个列表拼接成一个列表
		lst = [1,2,3] + [4,5,6]		[1, 2, 3, 4, 5, 6]
		*将列表中的元素指定重复的次数,列表和字符串不能相乘
		lst = [1,2,3 * [1,2,3]		TypeError: can't multiply sequence by non-int of type 'list'
		in 和 not in
		in 用来检查指定元素是否在列表中,如果元素在列表中返回True,如果不在返回False
		not in  用了检查指定元素是否不在列表中,如果不在返回True,如果在返回False
		hero = ['钢铁侠','绿巨人','蜘蛛侠','黑寡妇','蚁人','美国队长']
		print('钢铁侠' in hero) 		True
		print('雷锋' not in hero)		True
		len() 获取列表中元素的个数(长度)
		max()获取元素列表中最大的元素
		min()获取元素列表中最小的元素
		方法和函数的区别,方法必须通过对象“.”方法()   xxx.yyy()
		方法就是特殊的函数
		s.index[x[,start[,end]])  # 获取指定元素在列表当中的位置
		s.count(x) 表示指定元素在列表中出现的次数

4. 修改列表

		通过切片来修改起始就是给切片的内容重新赋值,但是赋值的内容必须是一个序列
		当设置了步长时,序列中元素 的个数必须和切片中元素的个数保持一致
		hero = ['钢铁侠','绿巨人','蜘蛛侠','黑寡妇','蜘蛛侠','蚁人','美国队长']
		hero[::2] = '雷神'		ValueError: attempt to assign sequence of size 2 to extended slice of size 4
		print(hero)
		通过切片来删除元素
				del list{起始:结束}
				list = []
					hero = ['钢铁侠','绿巨人','蜘蛛侠','黑寡妇','蜘蛛侠','蚁人','美国队长']
					print('修改前',hero)
					hero[1:3] = []
					print('修改后',hero)
					修改前 ['钢铁侠', '绿巨人', '蜘蛛侠', '黑寡妇', '蜘蛛侠', '蚁人', '美国队长']
					修改后 ['钢铁侠', '黑寡妇', '蜘蛛侠', '蚁人', '美国队长']

5.列表的方法

		append() 向列表的最后插入一个元素  hero.append('黑寡妇')
		insert(arg1,arg2) 向列表指定位置插入一个元素,参数1:要插入的位置,参数2:要插入的元素
				insert(2,' 雷神')
		extend(iterable) 使用一个新的序列来扩展当前序列(它将该序列的元素添加到列表中),参数需要传递一个序列  hero.extend(['黑寡妇','火神'],'雷神')
		clear() 清空列表    hero.clear()
		pop()  根据索引删除并返回指定的元素
		resule = hero.pop(2)
		hero.pop()   如果不传索引值,删除最后一个元素
		remove()  删除指定值的元素(如果相同值的元素有多个,只会删除第一个)
		hero.remove('蚁人')
		print(hero)
		reverse() 翻转列表
		hero.reverse()
		sort()用来对列表中的元素进行排序
		lst = list('aseegkateae')
		print(lst)			['a', 's', 'e', 'e', 'g', 'k', 'a', 't', 'e', 'a', 'e']
		lst.sort()
		print(lst)			['a', 'a', 'a', 'e', 'e', 'e', 'e', 'g', 'k', 's', 't']
		lst.sort(key=None,reverse=True)
		print(lst)			['t', 's', 'k', 'g', 'e', 'e', 'e', 'e', 'a', 'a', 'a'] 

6.遍历列表

6.1 for 循环

		语法 
		for 变量  in 序列(遍历的规则):
		pass
		注意:for 循环代码块会执行措施,序列中有几个元素就会执行几次,每次执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素

6.2 range(start,stop[,step])

		start开始,计数从start开始,默认从0开始,例如 range(5) 等价于 ranger(0,5)
		stop 结束 计数从stop结束,但是不包括stop 例如 range(0,5) 结果【0,1,2,3,4】没有5			
		step 步长,默认为1,例如range(5)等价于range(0,5) 等价于range(0,5,1)

你可能感兴趣的:(python)