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用法

一、用在数组

  1. >>> a = [[1,3],[2,4],[3,5]]  
  2. >>> a = array(a)  
  3. >>> a.flatten()  
  4. array([1, 3, 2, 4, 3, 5]) 

二、用在列表

如果直接用flatten函数会出错

  1. >>> a = [[1,3],[2,4],[3,5]]  
  2. >>> a.flatten()  
  3.   
  4. Traceback (most recent call last):  
  5.   File "<pyshell#10>", line 1, in <module>  
  6.     a.flatten()  
  7. AttributeError: ‘list‘ object has no attribute ‘flatten‘  

正确的用法

  1. >>> a = [[1,3],[2,4],[3,5],["abc","def"]]  
  2. >>> a1 = [y for x in a for y in x]  
  3. >>> a1  
  4. [1, 3, 2, 4, 3, 5, ‘abc‘, ‘def‘]  

或者(不理解)

  1. >>> a = [[1,3],[2,4],[3,5],["abc","def"]]  
  2. >>> flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]  
  3. >>> flatten(a)  
  4. [1, 3, 2, 4, 3, 5, ‘abc‘, ‘def‘]  

三、用在矩阵

  1. >>> a = [[1,3],[2,4],[3,5]]  
  2. >>> a = mat(a)  
  3. >>> y = a.flatten()  
  4. >>> y  
  5. matrix([[1, 3, 2, 4, 3, 5]])  
  6. >>> y = a.flatten().A  
  7. >>> y  
  8. array([[1, 3, 2, 4, 3, 5]])  
  9. >>> shape(y)  
  10. (1, 6)  
  11. >>> shape(y[0])  
  12. (6,)  
  13. >>> y = a.flatten().A[0]  
  14. >>> y  
  15. array([1, 3, 2, 4, 3, 5]) 

 

以上是关于python 常见细节知识点的主要内容,如果未能解决你的问题,请参考以下文章

13 个非常有用的 Python 代码片段

java知识28 Java封装多测师

Python基础知识细节点总结,零基础一分钟就能掌握

常见的代码片段

python小知识片段

python小知识片段