1. 程式人生 > 實用技巧 >序列(list)

序列(list)

1.列表、元組和字串的共同點

  •   都可以通過索引得到每一個元素
  •   預設索引值總是從0開始
  •   可以通過分片的方法得到一個範圍內的元素的集合
  •   有很多共同的操作符(重複操作符、拼接操作符、成員關係操作符)

2.建立序列

>>> list('abcdefg')
			 
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> list([1,2,3,4,5])
			 
[1, 2, 3, 4, 5]
>>> list(('a',1,5,8,9,6))
			 
['a', 1, 5, 8, 9, 6]
>>> 

3.重要方法

  len

>>> len(('a',1,5,8,9,6))
			 
6
>>> 

  max,min

>>> a = ('a',1,5,8,9,6)
			 
>>> b = ('3',1,5,8,9,6)
			 
>>> max(a)
			 
Traceback (most recent call last):
  File "<pyshell#85>", line 1, in <module>
    max(a)
TypeError: '>' not supported between instances of 'int' and 'str'
>>> max(b)
			 
Traceback (most recent call last):
  File "<pyshell#86>", line 1, in <module>
    max(b)
TypeError: '>' not supported between instances of 'int' and 'str'
>>> b = (3,1,5,8,9,6)
			 
>>> max(b)
			 
9
>>> 

  可以看出在使用max的引數必須是資料型別一致的序列

  sum

>>> sum(b)
			 
32
>>> b = (3,1,5,8,9,6)
			 
>>> sum(b,1)
			 
33

  

  sorted

>>> b = (3,1,5,8,9,6)
			 
>>> sum(b,1)
			 
33
>>> sorted(b)
			 
[1, 3, 5, 6, 8, 9]
>>>

  reversed

>>> numbers = [1,2,5,6,8,3,8,4]
			 
>>> reversed(numbers)
			 
<list_reverseiterator object at 0x000001EA6BA17C18>
>>> 

  這樣呼叫是直接返回一個list物件,所以需要用list解析

<list_reverseiterator object at 0x000001EA6BA17C18>
>>> list(reversed(numbers))
			 
[4, 8, 3, 8, 6, 5, 2, 1]
>>> 

  enumerate 列舉

>>> enumerate(numbers)
			 
<enumerate object at 0x000001EA6BA326C0>
>>> list(enumerate(numbers))
			 
[(0, 1), (1, 2), (2, 5), (3, 6), (4, 8), (5, 3), (6, 8), (7, 4)]
>>> 

  enumerate返回的也是list物件,所以list解析,最終返回一個包含第一個值為索引,第二個值為值的多個元組的列表

  zip

>>> a = [1,2,3,4,5,6,7,8]
			 
>>> b = [5,6,5,4]
			 
>>> zip(a,b)
			 
<zip object at 0x000001EA6BAB76C8>
>>> list(zip(a,b))
			 
[(1, 5), (2, 6), (3, 5), (4, 4)]

  類似男女成對,女生數量不夠就會生出很多單身狗^_^