python---列表的切片、增加、删除、修改、成员关系、列表推

来源:转载


python—列表的切片、增加、删除、修改、成员关系、列表推导、排序翻转



一、列表:
1、有序的集合
2、通过偏移来索引,从而读取数据
3、支持嵌套
4、可变的类型


>>> a = [1,2,3,4,5,6,7]
>>> a[-1]
7
>>> b = [[1,2,3,4],5,6,7]
>>> b
[[1, 2, 3, 4], 5, 6, 7]
>>> b[0]
[1, 2, 3, 4]
>>> b[-1]
7
>>> b[0][1] =8
>>> b
[[1, 8, 3, 4], 5, 6, 7]
>>>

1)切片
a = [1,2,3,4,5,6,7]
正向索引
反向索引
默认索引


>>>
>>> c = [1,2,3,4,5,6,7]
>>> c[0:4:1]
[1, 2, 3, 4]
>>> c[0:4:2]
[1, 3]
>>> c[-1:-4:-1]
[7, 6, 5]
>>> c[-1:-4:-2]
[7, 5]
>>> c=[1:]
File "", line 1
c=[1:]
^
SyntaxError: invalid syntax
>>> c[1:]
[2, 3, 4, 5, 6, 7]
>>> a[1::2]
[2, 4, 6]
>>>

2)添加操作
+ 生成一个新的列表
Extend 接收参数并将该参数的每个元素都添加到原有的列表中,原地修改列表而不是新建列表
Append 添加任意对象的引用到列表的末端
Insert插入任意对象的引用到列表中,可以控制插入位置


>>> a = [1,2,3,4]
>>> b = [5,6,7,8]
>>> a + b
[1, 2, 3, 4, 5, 6, 7, 8]
>>>
>>>
>>> id(a)
3074399820L
>>> id(b)
3074398636L
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7, 8]
>>> id(a)
3074399820L
>>>
>>> a.append(9)
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a.append(12)
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 12]
>>> a.append([11,22,33,44])
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 12, [11, 22, 33, 44]]
>>> a.insert(1,'66')
>>> a
[1, '66', 2, 3, 4, 5, 6, 7, 8, 9, 12, [11, 22, 33, 44]]
>>>

3)修改
修改列表本身只需要直接赋值操作就行
A = [1,2,3]
A[0] = ‘haha’


>>> e = [1,2,3,4,5]
>>> e[2] = 9
>>> e
[1, 2, 9, 4, 5]
>>> e[3] = 'python'
>>> e
[1, 2, 9, 'python', 5]
>>>

4)删除操作
Del 我们通过索引删除指定位置的元素
Remove 移除列表中指定值的第一个匹配值。如果没找到的话,会抛出异常。
Pop 返回最后一个元素,并从list中删除她


>>> f = [1,2,3,4,5,6]
>>> del f[0]
>>> f
[2, 3, 4, 5, 6]
>>> del f[-1]
>>> f
[2, 3, 4, 5]
>>> f.remove(4)
>>> f
[2, 3, 5]
>>> f.remove(7)
Traceback (most recent call last):
File "", line 1, in
ValueError: list.remove(x): x not in list
>>> f.pop(2)
5
>>> f
[2, 3]
>>>

5)成员关系
In not in 我们可以判断一个元素是否在列表里面。
返回一个bool类型,元素在列表里返回true,否则返回false。


6)列表推导式
[expr for iter_var in iterable]
6.1)首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算生成一个列表。


比如我们要生成一个包含1到10的列表
[x for x in range(1,11)]
range(1,11)


>>> [x for x in range(1,11)]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> range(1,11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(1,11,1)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

[expr for iter_var in iterable if cond_expr]
6.2)加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。


要生成包含1到10的所有奇数列表
range(1,11,2)
[x for x in rang(1,11) if x % 2 == 1]


>>> range(1,11,2)
[1, 3, 5, 7, 9]
>>> range(1,11,3)
[1, 4, 7, 10]
>>>
>>> [x for x in range(1,11) if x %2 ==1 ]
[1, 3, 5, 7, 9]
>>> range(1,11,2)
[1, 3, 5, 7, 9]
>>>

7)排序翻转:sort,reverse
a = [33,11,22,44]
这个方式直接修改原列表。他的返回值为none,所以
b = a.sort()
print b 输出的内容是None
我们直接输出a列表


list的reverse函数:反转一个list,他的返回值为none
比如上面的列表a
b = a.reverse()
print b 输出的内容是None


直接看a列表能看到翻转的效果。


>>>
>>> a = [33,11,22,44]
>>> b = a.sort()
>>> b
>>> if b is None:
... print 'haha'
...
haha
>>> a
[11, 22, 33, 44]
>>> c = a.reverse()
>>> c
>>> if c is None:
... print 'null'
...
null
>>> a
[44, 33, 22, 11]
>>>




分享给朋友:
您可能感兴趣的文章:
随机阅读: