列表的创建
1. 一维列表的创建
创建一个空列表的3种方法
# 使用list函数可以直接创建一个空列表 list1 = list() # 使用[]创建一个空列表, 推荐使用的方法,最简单方便 list2 = [] # 使用字符串的split方法创建一个空列表 list3 = "".split()
创建自定义的列表
# 每个列表元素之间是使用英文的逗号隔开的 list1 = [1,2,3,4] list2 = ['a', 'b', 'c'] list3 = [1, '2', 'a', 4.5, '你好'] list4 = "abcd".split() list5 = list('1234abcd')
python的同一个列表里面可以包含任何的数据类型,也就是说,一个列表里面可以同时有数字,字符 串,列表,元组,字典,集合,类……
2. 多维列表的创建
多维列表其实就是列表里面嵌套列表
list1 = [[1,2,3,4], ['a', 'b', 'c', 'd']]
3. 使用列表推导式(解析式)创建列表
list1 = [x for x in range(5)]
列表的访问
列表是序列类型,因此列表的成员是可以通过下标来访问的。
1. 一维列表的元素访问
list1 = [1, 2, 3, 4, 5] list1[0]
2. 二维列表的元素访问
list1 = [[1, 2, 3, 4, 5], ['a', 'b', 'c']] list1[0][1] list1[1][2]
3. 使用for循环来遍历列表(先简单的了解for循环,知道怎么用for循环来遍历即可)
list1 = [1, 2, 3, 4, 5] for i in list1: print i
4. 使用pop方法来获取列表中的元素
list1 = [1, 2, 3, 4, 5] list1.pop()
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
语法:list.pop(obj=list[-1]) //默认为 index=-1,删除最后一个列表值。
obj — 可选参数,要移除列表元素的对象。该方法返回从列表中移除的元素对象。
列表的相关操作
列表是可变类型,因此列表中的元素是可以修改的,修改列表元素并不会改变列表所在的内存地址
1. 列表的修改
# 通过下标的方式修改列表的值 list1 = [1,2,3,4] list1[0] = 5 # 通过切片的方式修改列表的值,注意:使用切片的方式修改的时候,右值必须是可迭代类型(能用for循环遍历的) # 目前已经学习的可迭代类型有:字符串、列表 list1[1:3] = [666]
2. 往列表里面追加元素
list1 = [] # 使用append方法往列表里面添加元素 # append方法会把你给的数据当成是一个元素 list1.append(1) # 使用insert方法往列表中指定的位置添加元素 list1.insert(1, 'a')
3. 扩展列表(将另一个列表中的元素扩展进来)
list1 = [1,2,3,4] list2 = ['a', 'b', 'c', 'd'] # 使用extend方法可以将另一个列表中的元素全部添加到列表中 list1.extend(list2)
4. 删除列表中的元素
# 使用pop方法删除列表中的元素,pop方法会返回被删除的元素 list1 = [1, 2, 3, 4, 5] # 默认删除最后一个 list1.pop() # 删除指定位置的元素, 这里删除的是下标为2的元素 list1.pop(2) # 使用remove方法删除指定元素,remove方法不会返回被删除的元素 list1.remove(2) # 把2从list1中删除
5. 列表排序
# 使用列表内置的sort方法对列表进行排序,一般需要排序的列表都应该是由同一种元素组成的列表 # 因为不同类型的元素之间排序是没有什么意义的 list1 = [4, 1, 3, 6, 2, 5] # sort方法默认是升序排列 list1.sort() # 可以使用reverse方法或者在sort方法中指定reverse参数值为True将列表倒序 list1.reverse() list1.sort(reverse=True) # 当然,还可以指定sort方法中的cmp参数的返回值为-1对列表进行倒序,但是比较麻烦而已 list1.sort(cmp=lambda x, y: -1) # 使用python的内置sorted方法对列表进行排序, 参数的意义跟列表的sort一样的 list2 = sorted(list1)
切片操作
- [:] 得到整个列表中的所有元素
- [:end] 得到从开始到end-1的所有元素
- [start:] 得到从start开始到结束的所有元素
- [start: end] 得到从start到end-1的所有元素
- [start: end: step] 从start到end中每隔step取一个元素
后续扩展
一次开发中需要对列表里面的每个元素加前后缀构造成url形式可以使用以下函数
def make_great(names): # 对原列表进行遍历 while names: # 对每个列表元素进行出栈操做,并在前面添加字符串,并保存在当前变量中 current_name = 'the Great ' + names.pop() # 把当前变量保存在新列表中 new_names.append(current_name) return new_names # 返回新列表 new_names = [] names = ['Ann', 'Bob', 'Cindy'] new_names = make_great(names)