【Python】Python - Sets。Python Sets.
【Python】Python - Sets。Python Sets.
Set
Sets 也是Python 中4種 collections資料型態的一種,常作為容器使用,可以儲存多個items到1個變數裡面。其他3種為List, Tuple,與Dictionaey,這些容器都有不同的使用方式與情境,對資料的品質也不同。
Set內儲存的資料沒有順序(unordered),也沒有索引值(unindexed)。
Set宣告時使用大括弧{}。
範例
建立一個 Set:
thisset = {"apple", "banana", "cherry"}
print(thisset)
上面輸出: {'cherry', 'apple', 'banana'}
Note: 因為Sets沒有順序,所以存入sets內的資料在取出時無法確定哪個會先被取出。
Set Items
Set items 是無順序的,無法改變的,且不會儲存重複的值。
沒有順序的
沒有順序的表示set裡面的items沒有定義的順序。
Set的items的順序每次使用的時候都不一樣,且沒有索引的key值。
不可改變的
Sets是無法改變的,表示當set被建立後我們無法改變裡面的items。
一但set被建立後,你無法改變裡面的items,但你可以新增新的items。
不允許重複值
Sets不可以有2個items是相同的值。
範例
重複值將被忽略:
thisset = {"apple", "banana", "cherry", "apple"}
print(thisset)
上面輸出: {'banana', 'cherry', 'apple'}
取得Set的長度
為了知道set內有多少個items可以使用len() 方法。
範例
取得set內items的個數:
thisset = {"apple", "banana", "cherry"}
print(len(thisset))
上面輸出: 3
Set items的資料型態
Set items可以儲存許多的資料型態:
範例
字串,整數與布林資料型態:
set1 = {"apple", "banana", "cherry"}
set2 = {1, 5, 7, 9, 3}
set3 = {True, False, False}
上面輸出,順序可能不同:
{'cherry', 'apple', 'banana'}
{1, 3, 5, 7, 9}
{False, True}
a Set可以儲存不同的資料型態:
範例
A set 可以儲存不同的資料型態,如字串,整數與布林值,如下所示:
set1 = {"abc", 34, True, 40, "male"}
上面如果使用print(set1)可能有下面的輸出:{True, 34, 40, 'male', 'abc'}
type()
從python 來看,set可以定義為繼承自object並為'set'資料型態:
<class 'set'>
範例
set的資料型態是什麼?
myset = {"apple", "banana", "cherry"}
print(type(myset))
上面輸出: <class 'set'>
The set() 建構式
可以使用 set() 建構式去建立一個 set.
Example
使用 set() 建構式去建立一個 set.
thisset = set(("apple", "banana", "cherry")) # note the double round-brackets
print(thisset)
上面輸出: {'banana', 'apple', 'cherry'}
Python Collections (Arrays)
在python程式語言中有4種資料型態為collection 資料型態:
- List 為一種collection,儲存的資料是有順序的,可改變的。准許重複的items。
- Tuple 為一種collection,儲存的資料是有順序的且無法改變的。准許重複的items。
- Set 為一種collection,儲存的資料是無順序的且沒有序列號的。沒有重複的items值。
- Dictionary 為一種collection,是有順序的*且可改變的。不允許重複的items值。
*從Python 3.7後, dictionaries 為有順序的。而在python3.6與更早以前,dictionary是沒有順序的。
在選擇一種collection的型態時,去了解其屬性與型態是有用的。對特定資料選擇正確的型態,不但可以正確的保留資料的正確,更能夠增加效率與安全性。
留言
張貼留言