פייתון/פייתון גרסה 3/קבוצה

קבוצה (set) היא אוסף של איברים אשר אינם חוזרים על עצמם וללא חשיבות לסדרם. על כן לא ניתן להשתמש באינדקסים ופעולות נוספות הקשורות למיקומים של איברים על קבוצות.

מבנהעריכה

>>> a={1,2,3,4}
>>> type(a)
<class 'set'>

תכונות יחידיות של קבוצהעריכה

אין חזרהעריכה

נשתמש בפונקצית set בכדי לייצר קבוצה.

>>>>>> word='apple'
>>> set(word)
{'e', 'a', 'p', 'l'}

כפי שניתן לראות איברים שחזרו על עצמם נעלמו מהקבוצה.

אין חשיבות לסדרעריכה

נשתמש ב-slice בכדי לשלוף איבר מהקבוצה:

>>> s={1,2,3}
>>> s[1]
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    s[1]
TypeError: 'set' object does not support indexing

קבלנו הודעת שגיאה מאחר שבקבוצה אין חשיבות לסדר ועל כן לא ניתן לשלוף ממנה איברים על פי מיקומם.

פעולות ארתמטיותעריכה

איחודעריכה

 

איחוד של קבוצות מתבצע באמצעות הסימן |

>>> a={1,2,3,4,5}
>>> b={6,7,5,3,8}
>>> a|b
{1, 2, 3, 4, 5, 6, 7, 8}

ניתן לבצע חיבור של קבוצות גם באמצעות הפונקציה union.

חיסורעריכה

 

ניתן לבצע פעולות ארתמטיות

>>> a={1,2,3,4,5}
>>> b={6,7,5,3,8}
>>> a-b
{1, 2, 4}

כמו גם קיימת הפונקציה difference

חיתוךעריכה

 

חיתוך קבוצות מתבצע באמצעות פעולת &  :

>>> a={1,2,3,5,7}
>>> b={3,5,6,72,1}
>>> a&b
{1, 3, 5}

יתרונה של הקבוצה שהיא יכולה לבצע חיתוך של מחרוזת (אך היא מוחקת איברים החוזרים על עצמם):

>>> a=set('12344556')
>>> a
{'6', '4', '2', '3', '5', '1'}


ניתן לבצע איחוד באמצעות הפונקציה intersection

לא בחיתוךעריכה

 

לא בחיתוך (xor) הם כל האיברים שנמצאים בקבוצה A ובקבוצה B אך לא בשניהם:

>>> a={1,245,'a',54,6,'b'}
>>> b={4,6,1,6,'b'}
>>> a^b
{'a', 4, 245, 54}

דוגמהעריכה

השוואה בין שני טקסטים

#from string to list
str1 = "ABC NCD DFS DSF TPY SDR"
str2 = "NKS MKS DSO SDR SDU DFH"

L1=str1.split(' ')
L2=str2.split(' ')

#creats sets
S1=set(L1)
s2=set(L2)

#range of the list
print(range(len(L1)))

for i in range(len(L1)):
    print(i)

#creat dict for a word
seqalign=[]

for i in range(len(L1)):
    if L1[i] == L2[i]:
        seqalign.append(L1)
    else:
        seqalign.append("~~~")
print(L1)
print(L2)

#words in both list
print(seqalign)
    
range(0, 6)
0
1
2
3
4
5
['ABC', 'NCD', 'DFS', 'DSF', 'TPY', 'SDR']
['NKS', 'MKS', 'DSO', 'SDR', 'SDU', 'DFH']
['~~~', '~~~', '~~~', '~~~', '~~~', '~~~']

ראה גםעריכה