python 常见细节知识点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 常见细节知识点相关的知识,希望对你有一定的参考价值。
1.a[::-1]翻转
设有一个元组或者列表
a = (1,2,3,4)
b = [1,2,3,4]
则a[::-1]和b[::-1]的含义是将元组或列表的内容翻转
a[::-1] # 结果为(4,3,2,1)
b[::-1] #结果为[4,3,2,1]
注意和a[:-1]的区别
a[:-1]表示从元组中切片,默认从第一个元素开始,到倒数第一个元素前面的那个元素为止
a[:-1] #结果为(1,2,3) b[:-1] #结果为[1,2,3]
2.Python中a和a[:]有什么区别?
[]是引用 传址调用
[:] 是复制 传值调用
发现用b=a[:], 再给b赋值, 不会影响a; 直接给a[:]赋值却会影响a
3.Python中flatten,matrix.A用法
一、用在数组
- >>> a = [[1,3],[2,4],[3,5]]
- >>> a = array(a)
- >>> a.flatten()
- array([1, 3, 2, 4, 3, 5])
二、用在列表
如果直接用flatten函数会出错
- >>> a = [[1,3],[2,4],[3,5]]
- >>> a.flatten()
- Traceback (most recent call last):
- File "<pyshell#10>", line 1, in <module>
- a.flatten()
- AttributeError: ‘list‘ object has no attribute ‘flatten‘
正确的用法
- >>> a = [[1,3],[2,4],[3,5],["abc","def"]]
- >>> a1 = [y for x in a for y in x]
- >>> a1
- [1, 3, 2, 4, 3, 5, ‘abc‘, ‘def‘]
或者(不理解)
- >>> a = [[1,3],[2,4],[3,5],["abc","def"]]
- >>> flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]
- >>> flatten(a)
- [1, 3, 2, 4, 3, 5, ‘abc‘, ‘def‘]
三、用在矩阵
- >>> a = [[1,3],[2,4],[3,5]]
- >>> a = mat(a)
- >>> y = a.flatten()
- >>> y
- matrix([[1, 3, 2, 4, 3, 5]])
- >>> y = a.flatten().A
- >>> y
- array([[1, 3, 2, 4, 3, 5]])
- >>> shape(y)
- (1, 6)
- >>> shape(y[0])
- (6,)
- >>> y = a.flatten().A[0]
- >>> y
- array([1, 3, 2, 4, 3, 5])
以上是关于python 常见细节知识点的主要内容,如果未能解决你的问题,请参考以下文章