定義乙個方法intersect(self, other),返回乙個新的intset,包含同時出現在兩個集合中的元素。換句話說,s1.intersect(s2),將返回同時包含在s1和s2中元素的新intset。若s1和s2沒有共同的元素該如何處理?
增加乙個特殊方法__len__(self),若呼叫len(s),將返回s中元素的個數。
#-*- coding:utf-8 -*-
__author__ = "zhangguodong"
__time__ ="2017.11.08"
class intset(object):
def __init__(self):
self.vals = set()
def insert(self, n):
self.vals.add(n)
def member(self, n):
return n in self.vals
def remove(self, n):
try:
self.vals.remove(n)
except:
raise valueerror(str(n) + 'is not found')
def __str__(self):
vals =
for n in self.vals:
vals = map(str, vals)
vals_str = ",".join(vals)
return ''
def intersect(self, other):
intset = intset()
for i in self.vals:
if other.member(i):
intset.insert(i)
return intset
def __len__(self):
return len(self.vals)
if __name__ == '__main__':
s1 = intset()
for i in range(0, 8):
s1.insert(i)
print "the set of s1 is:" + str(s1.vals)
print "the length of s1:" + str(len(s1))
print ""
s2 = intset()
str1 = [1,2,-1,-2,3.5,5,8,6]
for i in str1:
s2.insert(i)
print "the set of s2 is:" + str(s2.vals)
print "the length of s2:" + str(len(s2))
print ""
new_obj = s1.intersect(s2)
print "the set of s1.intersect(s2) values is:"+str(new_obj)
print "the length of s1.intersect(s2):"+str(len(new_obj))
Python 程式設計基礎和字串
一 轉義符 當python見到反斜槓 也就是轉義字元時,知道應當把雙引號看做乙個字元,而不是某種資料型別的指示符。print i said don t do it i said don t do it 二 串聯倆個字串 每個程式設計師都會遇到要把倆個或多個字串連線在一起的情況,這叫做串聯 conca...
python字串和字元
python沒有字元資料型別,只有字串。字串必須在 單引號 雙引號 裡面 hello world hello world 為了和其他語言保持一致通常把 用於括住單個字元,用於括住字串 三引號 三引號中可以包含換行符 2.ascii碼和統一碼 ascll碼屬於統一碼 ascii碼 二進位制0000 0...
python字串處理1
給定乙個字串s,要求把s的前k個字元移動到s的尾部,如把字串 abcdef 前面的2個字元 a b 移動到字串的尾部,得到新字串 cdefab 稱作字串迴圈左移k位。輸入乙個字串和乙個非負整數n,要求將字串迴圈左移n次。可以使用以下語句實現字串s的輸入 s str input 可以使用以下語句實現非...