Python 列表

  • 列表可以装多种数据类型
  • 列表可以相互赋值:number2 = number1[ 1 , 2 , 3 , 4 ]

创建

  • 创建普通列表(一种数据类型)
number = [ 1 , 2 , 3 , 4 , 5 ]
  • 创建混合列表(多种数据类型)
mix = [ 1, 'a' , 3.14 , [ 1 , 2 , 3 , 4] ]
  • 创建空列表
empty = [ ]

添加元素

  • append(x)—添加一个元素x
number.append(6)             //向名字为number的列表添加6这个元素
  • len()
len(number)                 //返回number列表的长度
  • extend()—添加多个元素
//添加多个元素不是意味着可以传多个参数进去,而是要传一个列表进去
number.extend( [ 6 , 7 ] )
  • insert(x,y)—向x位置添加元素y
//向列表中的确定位置添加单个元素。注意位置和C语言中的数组下标一样,从0开始
number.insert(0,6)           //向0这个位置添加6这个元素

获取元素

number[x]                       //获取位置为x的元素

删除元素

  • remove(x)—移除元素名为x的元素
number.remove(x)                //移除元素名为x的元素
//如果x不存在,报错
  • del
del number[1]                   //移除number中位置为1的元素
del number                      //把整个列表从内存中删掉
  • pop()
//删除列表中最后一个元素,并返回
temp = number.pop()
//删除位置为x的元素,并返回
temp = number.pop(x)

列表分片

number[x:y]                     //从下表x到y切片出来(不包括number[y])
number[1:3]                     //得到一个列表的拷贝,原列表不变
//如果不写x默认为0;
//如果不写y默认为列表最后
number[:]                       //等于获得一个列表的拷贝

列表中常用操作符

  • 比较操作符:与字符串比较规则相似,一旦list1中某元素大于(小于)list2中某元素,返回结果。列表相等的话要求所有元素相同。
list1 = [123,456]
list2 = [456,123]
list1 > list2                   //False
  • 逻辑操作符
list1 = [123,456]
list2 = [456,123]
list3 = [123,456]
(list1 < list2) and (list1 == list3)        //True
  • 连接操作符:加号表示拼接两个列表,但是加号前后必须都是列表,不能出现:list1 = list1 + 'a'
list1 = [123,456]
list2 = [456,123]
list3 = list1 + list2 
//list3 = [123,456,456,123]
  • 重复操作符
    乘号表示把列表重复操作
list1 = [123,456]
list1 *= 3
//list1 = [123,456,123,456,123,456]
  • 成员关系操作符
  • in / not in
x in list1                      //如果x在list1中返回True,否则False
x not in list1                  //如果x不在list1中返回True,否则False
  • 对于列表中的列表,如果我们这样操作
list2 = [123,['a','b'],456]
'a' in list2
//它的返回值为False,这就说明 in/not in 只能作用于列表的一层
//正确操作是
'a' in list2[1]     //判断a是否在list2中的第一个元素里
//同样道理如果访问列表中的列表中的元素
list2[1][0]         //list2中第一个元素中的第0个元素

列表中的小伙伴们

  • count(x)—返回x在列表中出现的次数
list1 = [123,123,123,123,123]
list1.count(123)
//返回5
  • index(x,l,r)—返回x在区间[l,r]第一次出现的位置(不包括r),l,r可以不写
list1 = [123,456,123,456,123,456]
list1.index(123,2,4)
//返回2
  • reverse()—将整个列表反转
list1.reverse()
  • sort()—将列表排序,默认从小到大
list1.sort()                        //从小到大排序
list1.sort(reverse=True)            //从大到小排序

补充等于和拷贝的差别

list11 = [1,3,2,9,7,8]
list12 = list11[:]                 //拷贝
list13 = list11                    //等于
//现在我们对原始的list11做些改变
list11.sort()                      //排序
//打印list12,list13
list12 = [1,3,2,9,7,8]             //不变
list13 = [1,2,3,7,8,9]             //排序

图片说明原因

原文地址:https://www.cnblogs.com/031602523liu/p/8654147.html