<1>、数据容器_list
一、list列表
1、列表(list)是一种有序的集合,可以随时添加和删除其中的元素,list列表中的每个值都有对应的位置值,称之为索引(index),第一个索引是 0,第二个索引是 1,依此类推。
2、 list列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现,
例如定义一个包含6个元素的list列表: list1 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
3、list列表中的元素不需要具有相同的类型
例如:list2 = ['Hadoop', 'Hive', 2006, False],其中有字符串也有数字,布尔值False相当于0
4、用len()函数可以获得list元素的个数:(也叫获取列表长度)
例如:
list2 = ['Hadoop', 'Hive', 2006, False]
len(list2) 结果应该为4
5、用索引可以访问list中每一个位置的元素,索引是从0开始的,用中括号[ ]来表示索引号
list2 = ['Hadoop', 'Hive', 2006, False]
list2[0] #结果为 'Hadoop'
list2[1] #结果为 'Hive'
list2[3] #结果为 False
list2[4] #结果出错,如右图所示
6、当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(list2) - 1,因为元素的序号是从0开始的
例如代码 list2 = ['Hadoop', 'Hive', 2006, False],当输入索引list[4],此时程序报错,即索引越界
如下图
7、如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素,同理-2可获取倒数第二个元素
8、list列表可以进行一系列序列操作 如索引、 切片、增加、删除、修改、查询元素等,可使用以下函数来处理:
1、append( ) :增加元素
使用append()方法添加元素,该方法会在列表末尾位置添加数据元素,
例如:在列表尾部增加字符串 "Iriving"
2、remove() :删除元素
适用于知道要删除的值的情况,可指定元素值进行删除。
例如:删除列表中的Polo,如果列表内没有这个字符串,程序报错
3、insert() :索引增加元素
使用insert()方法也可以向指定的索引位置增加元素
例如:在索引为1,即第二个位置增加字符串‘Jordan’
4、pop() 、del[ ]:索引删除元素
pop()方法可指定索引位置进行元素的删除,当然也可以使用del关键字
例如:pop取出并删除字符串‘Jordan’,del直接删除字符串
5、index(),查找索引位置
使用index()方法可以指定元素,查找元素所在的位置
例如:查找字符串在列表中的索引号
6、sort( ):从小到大排序
sort()方法可以对list中的元素默认按照从小到大的顺序进行排序
例如:
7、count( ):查找元素出现次数
使用count()方法可以查找指定值出现的次数
例如:
list1 = [1,2,2,3,2,4,2,5,6]
list1.count(2)
输出为4,即列表中元素有4个2
8、reverse(),翻转元素
reverse()方法可以将list中的元素进行反转,
例如:代码
list=[1,2,3,4,5,6,7,8]
list.reverse()
print(list)
输出结果为:
9、clear()方法可以清空list
10、通过索引index不仅可以获取元素,还可以对元素进行修改 例如代码:
classmates = ['James', 'Kobe', 'Polo']
classmates[1] #返回 'Kobe'
classmates[1] = 'Kobe Bryant'#可直接通过赋值的方式进行修改
11、通过索引index还能以更灵活的方式进行元素的提取,即切片操作
完整的切片操作需要提供三个参数: 起始位置:默认等于第一个位置 结束位置:默认等于最后一个位置 步长:默认等于1
list1 = [1,2,3,4,5,6,7,8]
从list1中提取元素3,4,5
则切片操作:list1[2:5:1]
切片注意事项:
1、切片操作需要提供起始索引位置和最后索引位置,然后用冒号" : "将两者分开
2、切片操作返回一系列从起始索引位置开始到最后索引位置结束的数据元素
3、注意:结果包含起始位置的值,但不包含结束位置的值
4、起始位置、结束位置、步长都可以省略,如省略则等于默认值
5、如果想要将列表的顺序颠倒,则可以使用::-1
6、切片操作同样适用于:字符串、元组中,以及后续numpy、pandas中的数据结构