python---列表的切片、增加、删除、修改、成员关系、列表推导、排序翻转
来源:互联网 发布:linux grub 配置 编辑:程序博客网 时间:2024/06/05 11:52
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 "<stdin>", 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 "<stdin>", line 1, in <module>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]>>>
- python---列表的切片、增加、删除、修改、成员关系、列表推导、排序翻转
- Python 的列表推导
- Python的列表推导
- Python的列表推导
- python的【列表list】:定义、索引、添加、删除、遍历、长度;组合、重复、反转、切片、比较;排序
- Python的列表推导式
- Python的列表推导式
- Python的列表推导式
- Python 的列表推导式
- pyhton列表的添加删除和切片
- python 列表切片
- Python列表切片详解([][:][::])
- Python列表切片
- Python列表切片详解([][:][::])
- AngularJs实现订单列表的增加删除查询排序
- [Python] 对字符串,列表的切片操作
- [Python]列表的切片操作符使用
- Python 列表推导
- C++ Solution of LeetCode 461 Hamming Distance
- 报到文章
- Vue.js的helloworld-demo
- bzoj 1076(状压dp)(期望dp)
- JVM调优总结(含tomcat调优配置)
- python---列表的切片、增加、删除、修改、成员关系、列表推导、排序翻转
- 五、进程管理
- Scrum中的团队速率
- Python时间戳转Java时间戳
- 谈谈对HTML5的认识。
- python web py入门-2-显示一个demo网页
- AOP重点操作术语分析
- bzoj1192: [HNOI2006]鬼谷子的钱袋
- mybatic mysql concat 中文乱码