程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

5_Python進階_set數據結構

編輯:Python

set本身是一個集合的意思。
根據數學關於集合的定義可知,set裡面的數據不能是重復的
實例:檢查列表中包含重復的元素。

# 用for循環檢索出不重復的元素/數據
inputs = ['red', 'red', 'blue', 'yellow', 'yellow', 'green', 'orange', 'yellow', 'purple']
outputs = []
for item in inputs:
if inputs.count(item) > 1:
if item not in outputs:
outputs.append(item)
else:
pass
else:
pass
print(outputs)

輸出結果是:

['red', 'yellow']

可見,用循環的方法檢查列表中重復元素比較麻煩。
當采用set數據結構時候,會簡潔一些。

# 采用set數據結構,簡單一些
inputs = ['red', 'red', 'blue', 'yellow', 'yellow', 'green', 'orange', 'yellow', 'purple']
outputs = set([x for x in inputs if inputs.count(x) > 1])
# 列表裡面逐個遍歷inputs列表中重復的x值,因此列表裡面是重復的,可以用set去掉重復
print(outputs)

輸出結果是:

{
'red', 'yellow'}

set數據結構也和數學上的集合類似,也有交集和差集操作。
交集:兩個集合中都有的數據。
差集:⽤⼀個集合減去另⼀個集合的數據。

# set交集操作
inputs = ['red', 'red', 'blue', 'yellow', 'yellow', 'green', 'orange', 'yellow', 'purple']
inputs_also = ['yellow', 'brown']
# 首先要把list數據結構轉換成set數據結構
inputs = set(inputs)
inputs_also = set(inputs_also)
print(inputs.intersection(inputs_also))

輸出結果是:

{
'yellow'}

可見,set.intersection()方法查找交集。

# set差集操作
inputs = ['red', 'red', 'blue', 'yellow', 'yellow', 'green', 'orange', 'yellow', 'purple']
inputs_also = ['yellow', 'brown']
# 首先要把list數據結構轉換成set數據結構
inputs = set(inputs)
inputs_also = set(inputs_also)
print(inputs.difference(inputs_also))

可見,set.difference()方法查找差集。
set的創建:既可以用list創建,再用set()轉換成set實例;也可以直接用花括號創建。

# set創建
set_instance = {
'a', 15, 13.69, False}
print(type(set_instance))

輸出結果是:

<class 'set'>

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved