iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
0
Software Development

python 自學系列 第 9

python day9 (range、tuples)

  • 分享至 

  • xImage
  •  

range

range 可以用來產生一組數組,而且它是 lazy 的,就是一開始創建時並不會真的產生這組 list,所以這邊看到的只是一個 range 從 0 到 9.

>>> nums = range(10)
>>> print(nums)
range(0, 10)

只有在迭代這些數字時才會真正產生.

>>> list(nums)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

可以給第三個參數,代表一次增加多少.

>>> nums = range(0,10,2)
>>> list(nums)
[0, 2, 4, 6, 8]

可以運用 range 轉成 list 組合.

>>> nums1 = range(5)
>>> nums2 = range(5,20,3)
>>> nums = list(nums1) + list(nums2)
>>> print(nums)
[0, 1, 2, 3, 4, 5, 8, 11, 14, 17]

tuples

tuple 是一個 immutable 的數組.
建立空的 tuple :

>>> names = ()
>>> type(names)
<class 'tuple'>
>>> print(names)
()

建立一個元素的 tuple

>>> names = 'Daniel',
>>> print(names)
('Daniel',)

建立兩個元素的 tuple

>>> names = ('Daniel','James')
>>> type(names)
<class 'tuple'>
>>> print(names)
('Daniel', 'James')

多個元素的 tuple

>>> names = ('Daniel','Sam','Tom')
>>> type(names)
<class 'tuple'>

tuple 取值的方式跟在使用 substring 時類似.

>>> print(names[1])
Sam
>>> print(names[0])
Daniel
>>> print(names[2])
Tom
>>> print(names[1:])
('Sam', 'Tom')
>>> print(names[:2])
('Daniel', 'Sam')
>>> print(names[0:2])
('Daniel', 'Sam')

取得 tuple 的長度.

>>> len(names)
3

tuple 相加,記得 tuple 是 immutable 的,所以相加後要再綁定到另一個變數上.

>>> names2 = ('Jay','Marry','Jenny')
>>> user_names = names + names2
>>> print(user_names)
('Daniel', 'Sam', 'Tom', 'Jay', 'Marry', 'Jenny')

迭代 tuple 的元素.

>>> for name in user_names:
...  print('Hello {}'.format(name))
...
Hello Daniel
Hello Sam
Hello Tom
Hello Jay
Hello Marry
Hello Jenny

判斷某元素是否在 tuple 裡.

>>> 'Sam' in user_names
True
>>> 'Sam' not in user_names
False

tuple 會比 list 還省 memory 的空間,所以當確定元素是不會改變的,可以考慮使用 tuple 來替代 list.


上一篇
python day8 (list)
下一篇
python day10 (sets、iteration)
系列文
python 自學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言