码迷,mamicode.com
首页 > 编程语言 > 详细

升级打怪学python———列表

时间:2018-07-25 11:38:05      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:字典   ble   mat   trace   pam   str   序列   eve   net   

1、列表字典元组都是python中的容器。

2、列表的三个特点:

(1)异构性

  可以包含不同种类、任意类型的对象,甚至可以嵌套列表。

L1 = [1, 2, 3, 4, 5]
L2 = [1, spam, [2.3, 4]]
L3 = []

 

(2)有序性

  列表里装的元素都是有顺序的,可以按照位置序号获取单个元素,也可以用分片的方法来进行多个连续元素的获取。

L = [1,2,3,4,5,6,7,8]
print(L[1:3])

[2, 3]

  关于截取片段左右边界与索引值的对应关系,我们只需记住这么一个口诀“左闭右开”就OK了。

  如果省略掉终止索引,就表示一直截取到末尾。

  如果省略掉起始索引,就表示从起始元素就开始截取。

  目前我们使用的都是正索引,即从左往右的索引值,最左侧的索引值为0,往右依次加1;还有一种负索引的表示法,即从右往左数,最右侧是-1,往左依次减1,即-2,-3以此类推。

  步进值参数,这个默认是1,即1个挨着1个的取,如果我们想跳着截取,那就得专门设置这个步进参数了。  

L = [1,2,3,4,5,6,7,8]
print(L[0::2])

[1, 3, 5, 7]

 

  对截取出的分片进行修改,会影响到原始的列表吗?

L = [1,2,3,4,5,6,7,8]
b = L[3:-1]
print(before change:b={}.format(b))
b[0]=111
print(after change:b={}.format(b))
print(after change:L={}.format(L))

before change:b=[4, 5, 6, 7]
after change:b=[111, 5, 6, 7]
after change:L=[1, 2, 3, 4, 5, 6, 7, 8]

 

(3)本地可修改

  列表的大小和内容可以随意改变,在插入、删除、修改列表元素时,不需要建立一份新的列表拷贝,而是在原来的内存地址上直接修改列表对象。

 1 L = [1,2,3,4]
 2 L.append(5)
 3 print(L)
 4 
 5 [1, 2, 3, 4, 5]
 6 
 7 L = [1,2,3,4]
 8 L.insert(1,10)
 9 print(L)
10 
11 [1, 10, 2, 3, 4]
12 
13 L = [1,2,3,4]
14 L.extend([11,22,33])
15 print(L)
16 
17 [1, 2, 3, 4, 11, 22, 33]

 

3、列表的修改方法不能被赋值

1 L = [1,2,3,4,5]
2 L = L.insert(6,2)
3 print(L[2])
4 
5 Traceback (most recent call last):
6  File "E:/12homework/12homework.py", line 3, in <module>
7 print(L[2])
8 TypeError: NoneType object is not subscriptable

Insert方法的返回值是None,把None值赋给了L,你就无法找到之前的列表了。

 

4、列表修改的方法

增加:append(只能在尾部加入)

      insert(可在任意位置加入,如果指定的索引值大于序列的总长度,则自动加到末尾)

   extend(在尾部一次性加入多个元素)

L = [1,2,3,4]
L.append(5)
print(L)

[1, 2, 3, 4, 5]

L = [1,2,3,4]
L.insert(1,10)
print(L)

[1, 10, 2, 3, 4]

L = [1,2,3,4]
L.extend([11,22,33])
print(L)

[1, 2, 3, 4, 11, 22, 33]

 

删除:remove(传入指定要删除的对象)

  

L1 = [aa,bb,cc]
L1.remove(aa)
print(L1)

[bb, cc]

 

     del(删除列表中的一个分片)

del L1[1:3]

 

     pop(它在末端删除一个元素,并可以将删除的元素作为返回值返回给调用者)

  

L1 = [1,2,3]
print(L1.pop())#末端删除一个元素,弹出删除的值
print(L1)

3
[1, 2]

分片赋值

L = [4,5,6,7,8,9]
L[0] = 0

 

L = [4,5,6,7,8,9]
L[1:3] = [aa,bb,cc,dd]
print(L)

[4, aa, bb, cc, dd, 7, 8, 9]

本地排序

L = [1,5,3,8,3,2,10]
L.sort()
print(L)
L.reverse()
print(L)

[1, 2, 3, 3, 5, 8, 10]
[10, 8, 5, 3, 3, 2, 1]

 

升级打怪学python———列表

标签:字典   ble   mat   trace   pam   str   序列   eve   net   

原文地址:https://www.cnblogs.com/wsc-/p/9364546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!