zoukankan      html  css  js  c++  java
  • 【和我一起学python吧】python的数据类型

    python的元组、列表、字典数据类型是很python(there python is a adjective )的数据结构。这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益处。

    元组

             个人认为就像java的数组,python中的元组有以下特性:

    • 任意对象的有序集合,这条没啥说的,数组的同性;
    • 通过偏移读取;
    • 一旦生成,不可改变;
    • 固定长度,支持嵌套

             来例子吧:

    python 代码
    1. >>> (0, 'haha', (4j, 'y'))   
    2. (0, 'haha', (4j, 'y'))   
    3. >>> t = (1, 3, 'b')   
    4. >>> t[2]   
    5. 'b'   
    6. >>> t[3]   
    7.   
    8. Traceback (most recent call last):   
    9.   File "#41>", line 1, in <module></module>   
    10.     t[3]   
    11. IndexError :  tuple   index  out of  range   
    12. >>> t[-1]   
    13. 'b'   
    14. >>> t[0:-1]   
    15. (1, 3)   
    16. >>> t * 2   
    17. (1, 3, 'b', 1, 3, 'b')   
    18. >>>  for  x  in  t:   
    19.      print  x,   
    20.   
    21.        
    22. 1 3 b   
    23. >>> 'b'  in  t   
    24. True   
    25. >>> q = t + ((3, 'abc'))   
    26. >>> q   
    27. (1, 3, 'b', 3, 'abc')   
    28. >>>  for  x  in  (2, (3, 'a')):   
    29.      print  x   
    30.   
    31.        
    32. 2   
    33. (3, 'a')   
    34. >>>  len (q)   
    35. 5   
    36. >>>  len ((2, (3, 'abc')))   
    37. 2   
    38. >>> (1, 2, 3)[1]   
    39. 2   
    40. >>> q[1] = 'd'   
    41.   
    42. Traceback (most recent call last):   
    43.   File "#57>", line 1, in <module></module>   
    44.     q[1] = 'd'   
    45. TypeError : ' tuple '  object  does  not  support item assignment   
    46. >>> a = ('b', 'c', q)   
    47. >>> 1  in  a   
    48. False   
    49. >>> q  in  a   
    50. True   
    51. >>> a   
    52. ('b', 'c', (1, 3, 'b', 3, 'abc'))   
    53. >>> q='d'   
    54. >>> a   
    55. ('b', 'c', (1, 3, 'b', 3, 'abc'))  

    上面的例子足以说明大部分了,使用元组时最重要的一点是“一旦生成,就不可变了”。

    列表

          列表就像java里的collection,所具有的特性也要比元组更多,更灵活,其character总结如下:

    • 任意对象的有序集合;
    • 可通过偏移存取,注意,列表中的元素都是可变的,这是不同于元组的;
    • 长度可变,支持嵌套;
    • 还有一些类似java的对象引用机制

          由于列表的这些特性,使得列表在实际应用中被广泛使用,下面是一些例子。

    1) 首先是基本用法

    python 代码
    1. >>> l = ['a', 'b', 'c']   
    2. >>>  len (l)   
    3. 3   
    4. >>> l + ['d']   
    5. ['a', 'b', 'c', 'd']   
    6. >>> l * 2   
    7. ['a', 'b', 'c', 'a', 'b', 'c']   
    8. >>>  for  x  in  l:   
    9.      print  x,   
    10.   
    11.        
    12. a b c  

    2) 索引和分片,赋值(单个元素赋值,分片赋值)

    python 代码
    1. >>> l = ['abc', ' def ', 'ghi', 123]         
    2. >>> l[2]         
    3. 'ghi'         
    4. >>> l[-3]         
    5. def '         
    6. >>> l[:3]         
    7. ['abc', ' def ', 'ghi']       
    8. >>> l[1] = 'haha'      
    9. >>> l      
    10. ['abc', 'haha', 'ghi', 123]      
    11. >>> l[1:] = ['apple', 'banana']      
    12. >>> l      
    13. ['abc', 'apple', 'banana']      
    14. >>> l[2] = [123, 345, 456]      
    15. >>> l      
    16. ['abc', 'apple', [123, 345, 456]]      
    17. >>> l[1:] = [123, 234, 345, 456, 567]      
    18. >>> l      
    19. ['abc', 123, 234, 345, 456, 567]  

    3) 添加、排序、删除操作

    python 代码
    1. >>> l = ['abc', ' def ', 'ghi', 123]   
    2. >>> l. append (456)   
    3. >>> l   
    4. ['abc', ' def ', 'ghi', 123, 456]   
    5. >>> l.sort()   
    6. >>> l   
    7. [123, 456, 'abc', ' def ', 'ghi']   
    8. >>>  del  l[0]   
    9. >>> l   
    10. [456, 'abc', ' def ', 'ghi']   
    11. >>>  del  l[2:]   
    12. >>> l   
    13. [456, 'abc']  

    4)一些有趣的用法(来自论坛 id—咖啡舞者 )

          去掉列表中每个元素头尾的空格:

    python 代码
    ()    元素固定
     
  • 相关阅读:
    CVE-2017-11826:Office Open XML 标签嵌套解析混淆漏洞
    未授权访问漏洞总结
    Linux提权—脏牛漏洞(CVE-2016-5195)
    Linux提权
    (翻译)OpenDocument and Open XML security (OpenOffice.org and MS Office 2007)
    SSH后门万能密码
    Linux中使用gdb dump内存
    在 x64dbg 中设置条件断点和条件记录断点
    Linux中的.bash_ 文件详解
    Photoshop 第二课 工具-钢笔的使用
  • 原文地址:https://www.cnblogs.com/rrxc/p/3867556.html
Copyright © 2011-2022 走看看