python的元组、列表、字典数据类型是很python(there python is a adjective )的数据结构。这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益处。
元组
         个人认为就像java的数组,python中的元组有以下特性:
- 任意对象的有序集合,这条没啥说的,数组的同性;
- 通过偏移读取;
- 一旦生成,不可改变;
- 固定长度,支持嵌套
         来例子吧:
python 代码
- >>> (0, ‘haha‘, (4j, ‘y‘))   
- (0, ‘haha‘, (4j, ‘y‘))   
- >>> t = (1, 3, ‘b‘)   
- >>> t[2]   
- ‘b‘   
- >>> t[3]   
-   
- Traceback (most recent call last):   
-   File "
-     t[3]   
- IndexError :  tuple   index  out of  range   
- >>> t[-1]   
- ‘b‘   
- >>> t[0:-1]   
- (1, 3)   
- >>> t * 2   
- (1, 3, ‘b‘, 1, 3, ‘b‘)   
- >>>  for  x  in  t:   
-      print  x,   
-   
-        
- 1 3 b   
- >>> ‘b‘  in  t   
- True   
- >>> q = t + ((3, ‘abc‘))   
- >>> q   
- (1, 3, ‘b‘, 3, ‘abc‘)   
- >>>  for  x  in  (2, (3, ‘a‘)):   
-      print  x   
-   
-        
- 2   
- (3, ‘a‘)   
- >>>  len (q)   
- 5   
- >>>  len ((2, (3, ‘abc‘)))   
- 2   
- >>> (1, 2, 3)[1]   
- 2   
- >>> q[1] = ‘d‘   
-   
- Traceback (most recent call last):   
-   File "
-     q[1] = ‘d‘   
- TypeError : ‘ tuple ‘  object  does  not  support item assignment   
- >>> a = (‘b‘, ‘c‘, q)   
- >>> 1  in  a   
- False   
- >>> q  in  a   
- True   
- >>> a   
- (‘b‘, ‘c‘, (1, 3, ‘b‘, 3, ‘abc‘))   
- >>> q=‘d‘   
- >>> a   
- (‘b‘, ‘c‘, (1, 3, ‘b‘, 3, ‘abc‘))  
上面的例子足以说明大部分了,使用元组时最重要的一点是“一旦生成,就不可变了”。
列表
      列表就像java里的collection,所具有的特性也要比元组更多,更灵活,其character总结如下:
- 任意对象的有序集合;
- 可通过偏移存取,注意,列表中的元素都是可变的,这是不同于元组的;
- 长度可变,支持嵌套;
- 还有一些类似java的对象引用机制
      由于列表的这些特性,使得列表在实际应用中被广泛使用,下面是一些例子。
1) 首先是基本用法
python 代码
- >>> l = [‘a‘, ‘b‘, ‘c‘]   
- >>>  len (l)   
- 3   
- >>> l + [‘d‘]   
- [‘a‘, ‘b‘, ‘c‘, ‘d‘]   
- >>> l * 2   
- [‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘b‘, ‘c‘]   
- >>>  for  x  in  l:   
-      print  x,   
-   
-        
- a b c  
2) 索引和分片,赋值(单个元素赋值,分片赋值)
python 代码
- >>> l = [‘abc‘, ‘ def ‘, ‘ghi‘, 123]         
- >>> l[2]         
- ‘ghi‘         
- >>> l[-3]         
- ‘ def ‘         
- >>> l[:3]         
- [‘abc‘, ‘ def ‘, ‘ghi‘]       
- >>> l[1] = ‘haha‘      
- >>> l      
- [‘abc‘, ‘haha‘, ‘ghi‘, 123]      
- >>> l[1:] = [‘apple‘, ‘banana‘]      
- >>> l      
- [‘abc‘, ‘apple‘, ‘banana‘]      
- >>> l[2] = [123, 345, 456]      
- >>> l      
- [‘abc‘, ‘apple‘, [123, 345, 456]]      
- >>> l[1:] = [123, 234, 345, 456, 567]      
- >>> l      
- [‘abc‘, 123, 234, 345, 456, 567]  
 
3) 添加、排序、删除操作
python 代码
- >>> l = [‘abc‘, ‘ def ‘, ‘ghi‘, 123]   
- >>> l. append (456)   
- >>> l   
- [‘abc‘, ‘ def ‘, ‘ghi‘, 123, 456]   
- >>> l.sort()   
- >>> l   
- [123, 456, ‘abc‘, ‘ def ‘, ‘ghi‘]   
- >>>  del  l[0]   
- >>> l   
- [456, ‘abc‘, ‘ def ‘, ‘ghi‘]   
- >>>  del  l[2:]   
- >>> l   
- [456, ‘abc‘]  
4)一些有趣的用法(来自论坛 id—咖啡舞者 )
      去掉列表中每个元素头尾的空格:
python 代码
()    元素固定
 
 
 
 python 数据类型,布布扣,bubuko.com
python 数据类型
原文:http://www.cnblogs.com/rrxc/p/3867556.html