Python List

  1. 1. 序列:列表和元组
    1. 1.1. 序列的操作
      1. 1.1.1. 索引
      2. 1.1.2. 分片
      3. 1.1.3. 序列相加 使用加运算符,相同类型可以进行链接操作
      4. 1.1.4. 序列乘法
      5. 1.1.5. 检查成员 使用 in
      6. 1.1.6. 长度,最小值,最大值
      7. 1.1.7. 赋值, 删除, 替换

一直在用list,遇到不懂就Google,对于一些基础而细节的知识点,感觉总结一下,以后常看可能会更好。

序列:列表和元组

序列中最常用的莫过于列表和元组了。还包括:字符串,Unicode字符串,buffer对象和xrange对象。这里不得不提到容器(container)。序列和映射是两类主要的容器。这里注意区分Set这种容器既不是序列也不是映射。

注意:序列是可以修改的,而元组是不可以的。

序列的操作

所有的序列都是可以进行某些特定的操作,包括:迭代(iteration),索引(indexing),分片(slicing),加(adding),乘(multiplying),计算长度,最大值,最小值等等。

索引

访问某一个元素,索引0返回第一个,-1 返回最后一个元素

1
2
3
str = 'Hello'
str[0] #'H'
str[-1] #'o'

分片

访问一定范围内的元素,通过冒号隔开连个索引值。 注意: 返回值不包含最后的索引值本身。

1
2
3
str = 'Hello world python'
str[1:6] #'ello` '
str[9-2] #'ld pyth'

只要分片左边的索引值比它右边的晚出现在序列中,结果就是空。

1
2
str = 'Hello world python'
str[-2:0] #'[]'

如果不填右边的索引值呢? 分片就会包括到序列结尾的元素。对于不填写左边同样原理

1
2
3
str = 'Hello world python'
str[-2:] #'on'
str[:2] #'He'

新的元素: 步长(step length):上文不填写,默认步长为1. 当然可以进行设置,如2.

1
2
3
str = '123456789'
str[0:7:2] #'135'
str[::2] #'135'

步长不可为0,但可以为负数。

1
2
str = '123456789'
str[7:0:-1] #'65432'

序列相加 使用加运算符,相同类型可以进行链接操作

1
2
[1,2,3,4,5] + [6,7,8,9] = [1,2,3,4,5,6,7,8,9]
'Hello ' + 'World' = 'Hello world'

序列乘法

  1. 用数字N乘以一个序列,这个序列会被重复N次

    1
    2
    'python' * 5 = 'pythonpythonpythonpythonpython'
    [42]* 3 = [42,42,42]
  2. None, 空列表和初始化
    如果想创建一个占用10个元素空间,但是不含有任何内容的列表,我们可以使用None:

    1
    [None] * 10  #'[None,None,None,None,None,None,None,None,None,None]'

检查成员 使用 in

1
2
3
4
users = ['mlh','foo','bar']
'mlh' in users #True
permission = 'rw'
'w' in permission #True

长度,最小值,最大值

使用内建函数:len, min, max.
More info: list

赋值, 删除, 替换

1
2
3
4
5
6
arr = list('hello')  
arr[1:] = list('ey') #['h','e','y']
del arr[1] #['h','y']

numbers = [1,2,3,4,5,6]
numbers[1:4] = [] #[1,5,6]

####列表方法
1.append 2.count 3.extend 4.index 5.insert 6.pop 7.remove 8.reverse 9.sort || sorted(Key和Reverse)

1
2
3
4
numbers = [0,9,3,1,5,6]
numbers.sort(reverse=True) #[6,5,4,3,2,1]
strarr = ['abcasd','aadfaeesdf','ab','dfga','a']
strarr.sort(key=len) #['a', 'ab', 'dfga', 'abcasd', 'aadfaeesdf']