python 列表和列表解析以及排序
2017-12-14 14:17
393 查看
部分来源《python学习手册 》第四版
一、python列表的主要属性:
二、常见列表常量和操作:
列表是支持原地修改的。
1)
L.append(x)和L+[x]的区别:
2)sort的应用
列表解析:
常见for循环:
列表解析表达式:
题外话:python的三元运算符a?b:c的python实现:
匿名函数:lambda表达式
lambda arg1,arg2,arg3,…argN : expression using args
在序列中映射函数:map
列表排序:
1)key参数/函数
按key来排序
由:2*3 —>3*2
一、python列表的主要属性:
1)任意对象的有序集合 2)通过偏移量读取 3)可变长度,异构以及任意嵌套 4)属于可变序列分类 5)对象引用数组 In [2]: d = ['a','b'] In [6]: a Out[6]: [1, 2, 3, 4, 'a', 'b'] In [7]: a[0] =d In [8]: a Out[8]: [['c', 'b'], 2, 3, 4, 'a', 'b'] In [9]: d[0]='e' In [10]: a Out[10]: [['e', 'b'], 2, 3, 4, 'a', 'b']
二、常见列表常量和操作:
L = [] #一个空的列表 L = ['a','b','c','d'] #新建一个列表,索引为从左往右为0,1,2,3 L = ['abc',['a','b']] #嵌套列表 L = list("spam") #将字符串转化为列表,结果为['s','p','a','m'] L[i] L[i][j] L[i:j] len(L) L1+L2 #合并 L*3 #重复 for x in L:print x #迭代,成员关系 L.append(4) #方法4 L.extend([1,2,3,4]) #方法同加号 L.insert(i,x) #在原有L[i]前插入x L.index(x) #查x的元素的索引,结果只为第一次匹配到x的。 L.count(x) #统计L中x元素的个数,非常有用。 L.sort() 如果需要一个排序好的副本,同时保持原有列表不变,怎么实现呢 x =[4, 6, 2, 1, 7, 9] y = x[ : ] y.sort() print y #[1, 2, 4, 6, 7, 9] print x #[4, 6, 2, 1, 7, 9] 注意:y = x[:] 通过分片操作将列表x的元素全部拷贝给y, 另一种获取已排序的列表副本的方法是使用sorted函数: 另一种获取已排序的列表副本的方法是使用sorted函数: x =[4, 6, 2, 1, 7, 9] y = sorted(x) print y #[1, 2, 4, 6, 7, 9] print x #[4, 6, 2, 1, 7, 9] sorted返回一个有序的副本,并且类型总是列表,如下: print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y'] L.reverse() #反转,即倒序。 类似 L[::-1],但这种不会改变原有序列。 del L[k] #删除索引为k的元素 del L[i:j] #包含L[i],但不包含L[j] 。 [i,j) L.pop() #最后一个元素删除 L[i:j] = [] L.remove(x) #删除L中值为x的元素。从左往右,只删除一个 L[i:j] = [4,5,6] #
列表是支持原地修改的。
1)
L.append(x)和L+[x]的区别:
>>> b = [1,2,3,4] >>> a = [5,6,7,8] >>> b.append('a') >>> b [1, 2, 3, 4, 'a'] >>> b+a [1, 2, 3, 4, 'a', 5, 6, 7, 8] >>> b [1, 2, 3, 4, 'a']
2)sort的应用
>>> L = ['abc','ABD','aBe'] >>> L.sort() >>> L ['ABD', 'aBe', 'abc'] >>> L.sort(key=str.upper) >>> L ['abc', 'ABD', 'aBe'] >>> L.sort(key=str.lower) >>> L ['abc', 'ABD', 'aBe'] >>> L.sort(key=str.lower,reverse=True) >>> L ['aBe', 'ABD', 'abc']
列表解析:
常见for循环:
>>> for x in range(2): ... L.append(x) ... >>> L [0, 1]
列表解析表达式:
>>> [x for x in range(2)] [0, 1]
题外话:python的三元运算符a?b:c的python实现:
>>> 1 if 5>3 else 0
匿名函数:lambda表达式
lambda arg1,arg2,arg3,…argN : expression using args
>>> f = lambda x,y,z:x+y+z >>> f(1,2,3) 6 >>> f = lambda x=1,y=2,z=3:x+y+z >>> f(2) 7
在序列中映射函数:map
>>> def inc(x): return x+10 ... >>> map(inc,[1,2,3,4]) [11, 12, 13, 14] >>> map((lambda x:x+3),[1,2,3]) [4, 5, 6]
列表排序:
参考如下:
https://www.cnblogs.com/whaben/p/6495702.html1)key参数/函数
按key来排序
>>> student_tuples = [ ('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10), ] >>> sorted(student_tuples, key=lambda student: student[2]) # sort by age [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)] #sort >>> s = [('a',12),('b',32),('c',3)] >>> s.sort(key=lambda k:k[1]) >>> s [('c', 3), ('a', 12), ('b', 32)]
矩阵的转置
https://www.cnblogs.com/anpengapple/p/5427367.html由:2*3 —>3*2
>>> b [(1, 2), (3, 4), (5, 6)] >>> zip(*b) [(1, 3, 5), (2, 4, 6)]
相关文章推荐
- 使用python的列表解析以及函数式计算来简化代码
- 使用python的列表解析以及函数式计算来简化代码
- 使用python的列表解析以及函数式计算来简化代码
- 【python】练习题:去重排序以及列表推导式
- python基础之循环结构以及列表
- python列表的排序
- python: 列表以及元组
- Python3 将txt数据转换成列表,进行排序,筛选
- 零基础学python-2.16 列表解析
- python列表里__setslices__方法函数解析a
- python基础编程_26_列表元素的插入,删除,排序
- python生成器表达式和列表解析
- Python对list列表及子列表进行排序
- Python 列表解析
- python 按字典value排序以及按list中字典的某个key的value排序
- Python判断列表是否已排序的各种方法及其性能分析
- python--生成器、三元表达式、列表解析、生成器表达式
- Python3 对列表按元组指定列进行排序
- python中对列表排序,去重
- python中的分枝循环语句, 以及列表和元组的操作