Menu Close

python2 学习笔记之 列表

列表是一种重要的数据接口,类似于其他语言中的数组。主要功能有切片、索引、引用。下面来说一下详细概念。

列表的一些特性

  1. 索引
    索引很简单,很类似之前的字符串操作
    list = [1,2,3,4,5,6,7]
    list[0] //  1  通过一个索引获取数值   
  1. 切片
    list[0:3] // [1,2,3] 获取索引0到3之间的数值
    list[1:] //[2,3,4,5,6,7]从索引1开始,获取所有数值
  1. 引用
    定义一个变量a,然后b = a ,如果a发生修改,则b也会相应发生修改,因为b只是引用了a的地址,区别与copy.
>>> a = [1,2,3]
>>> b = a
>>> a[0] = 4 //将1改成4
>>> a
[4, 2, 3]
>>> b
[4, 2, 3]
>>>
#可以使用id方法查看列表的id号(内存地址)
>>> id(a)
4310247688
>>> id(b)
4310247688
#其中的is方法就是使用id作为判断条件的
>>> a is b
True
  1. 拷贝
    拷贝和引用写起来差不多
>>> a = [1,2,3]
>>> a_copy = a[:]
>>> a
[1, 2, 3]
>>> a_copy
[1, 2, 3]
>>> id(a_copy)
4310245672 // 两处的id值已经不一致了
>>> id(a)
4310247184 //
>>>

列表的常用操作

  1. append 向列表最后添加一个值
a.append(4) //[1, 2, 3, 4, 2]
  1. pop 弹出最后一个值并删除
a.pop() //2
print (a) //[1, 2, 3, 4]
  1. sort 按从小到大的顺序排序
>>> a
[1, 2, 3, 4] //初始值
>>> a.append(0) //追加0到最后
>>> a
[1, 2, 3, 4, 0] //现在a的值
>>> a.sort()    //排序
>>> a           //输出排序后的值
[0, 1, 2, 3, 4]
  1. reverse,反向排序
>>> a
[0, 1, 2, 3, 4]  //默认
>>> a.reverse()  //反向排序
>>> a
[4, 3, 2, 1, 0]  //反向排序后的数值
>>> a.reverse()  //再次反向排序
>>> a
[0, 1, 2, 3, 4]  //排序后的值
>>>
  1. del 删除一个元素,参数为键值
>>> a
[0, 1, 2, 3, 4] //默认值
>>> del a[0]    //删除下表为0的元素
>>> a
[1, 2, 3, 4]    //删除后的结果
>>>
  1. 向列表中加入多个元素 "+"
>>> a
[1, 2, 3, 4]
>>> a + [2,2,2]
[1, 2, 3, 4, 2, 2, 2]
>>>
  1. 列表重复 "*"
    将现有列表重复N次
>>> a
[1, 2, 3, 4]
>>> a * 2
[1, 2, 3, 4, 1, 2, 3, 4]
>>> a * 3
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
  1. count 判断列表中元素的总数
>>> a
[1, 2, 3, 4]
>>> a.count(5)  //a只有4个元素,返回0(false)
>>> a.count(4)  //a有4个元素,返回1(true)
1
>>> 
  1. 列表转字符串
#如果列表中都是字符串的话可以使用join
list = ['a','c','b']
#字符串之间以,分割,也可以改为其他符号
",".join(list)

总结

list可以直接通过修改下标的方式修改值,所以列表是可变的序列,区分与元组。list包含了很多有用方法,以及快速添加的 + * 符号.list除了可以通过索引获取值外,还可以通过切片的形式获取区间值。需要注意的,要区分列表的引用和拷贝,引用是引用了相同的地址,其中一个做出修改,所有基于此引用的列表都会发生改变。拷贝是从当前列表完全拷贝出一份新的列表,地址是不一样的。这点可以通过id()方法来校验.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注