python学習ノート(六)の集合1


python学習ノート(六)の集合1 pythonの様々なタイプとその様々な方法は、(1)インタラクティブモードでdir()またはhelp()(2)google集合の特徴:英語set、可変、可変;要素は順序がなく、繰り返してはいけません.コレクションにはインデックスがありません(dir(set)で表示できます)、順序がない場合はシーケンスに属しません.コレクションの要素はhashable(可変)タイプです!
コレクションの作成--文字列インスタンス1:
s 1=set(「wtf」)s 1 set(['t','w','f'])type(s 1)文字列の文字を分解して集合を形成する.例2:s 2=set(「wttf」)s 2 set(['t','w','f'])type(s 2)は、「wttf」には2つの「t」があるが、集合には1つの「t」しかなく、集合中の要素が重複できないことを示している.
コレクションの作成--リストインスタンス3:
s 3=set([123,『wtf』,『book』,『wtf』)s 3 set([123,『book』,『wtf』))説明:集合を作成する際にリストに重複する要素が見つかった場合はフィルタリングされ,重複しないものが残る.
add
help(set.add)add(...)Add an element to a set. This has no effect if the element is already present.例4:a_set = {}a_set.add("wtf")Traceback(most recent call last):File",line 1,in AttributeError:'dict'object has no attribute'add'type(a_set)説明:{}これは、辞書や集合で使われています.しかし、上記の方法では辞書が確立されており、集合ではありません.これはpythonの規定です.()を使ってもだめです.例5:a_set = ()a_set.add(「wtf」)Traceback(most recent call last):File",line 1,in AttributeError:'tuple'object has no attribute'add'type(a_set)説明:コンピュータはメタグループを構築していると考えている.
空のコレクションを作成するには、set()インスタンス6を使用する必要があります.
s = set()type(s)
空でない集合を作成するには、次のようにします:インスタンス7:
a_set = {"a","i"}type(a_set)print a_setset(['i','a'])または:a_set = set(["a","i"])type(a_set)print a_setset(['a', 'i'])
追加要素:インスタンス8:
a_set.add("wtf")a_setset(['i', 'a', 'wtf'])
updateの特徴:別のセットの要素をマージします.
help(set.update)update(...)Update a set with the union of itself and others.例9:s 1 set(['t','w','f'])s 2=set(["python","fei")s 2 set(['python','fei'])s 1.update(s2)s1set(['python', 'fei', 't', 'w', 'f'])s2set(['python', 'fei'])
pop
help(set.pop)pop(...)Remove and return an arbitrary set element.Raises KeyError if the set is empty.
例10:
b_set = {"[1,2,3]","h","o","n","p","t","wtf","y"}b_set.pop()'[1,2,3]'b_set.pop()'wtf'b_set.pop()'h'b_setset(['o','n','p','t','wtf','y'])は、setのいずれかから削除し、その値を返すことを示します.setは、要素の削除を指定できません:インスタンス11:b_set.pop("n")Traceback (most recent call last):File "", line 1, in TypeError: pop() takes no arguments (1 given)
remove
help(set.remove)remove(...)Remove an element from a set; it must be a member.
If the element is not a member, raise a KeyError.

説明:set.remove(obj)のobjはsetの要素でなければならない.そうしないと、エラーが報告され、実験は以下の通りである.例12:
b_setset(['o', 'n', 'p', 't', 'wtf', 'y'])b_set.remove("p")b_setset(['o', 'n', 't', 'wtf', 'y'])b_set.remove(「didi」)Traceback(most recent call last):File",line 1,in KeyError:'didi'説明:集合に「wtf」がないことを明確に伝える.
discard(obj)
help(set.discard)discard(...)Remove an element from a set if it is a member.
If the element is not a member, do nothing.

説明:discardはremoveと類似しているが、また異なる.実験は以下の通りである:例13:
b_setset(['o', 'n', 't', 'y'])b_set.discard("n")b_setset(['o', 't', 'y'])b_set.discard("wtf")b_setset(['o','t','y'])説明:discard(obj)のobjは、集合の要素であれば削除されます.そうでなければ、何もしない、do nothing.両者を比較すると、例14:b_setset(['o', 't', 'y'])b_set.discard("w")b_setset(['o', 't', 'y'])b_set.remove("w")Traceback (most recent call last):File "", line 1, in KeyError: 'w'
clear
help(set.clear)clear(...)Remove all elements from this set.例15:b_setset(['o', 't', 'y'])b_set.clear()b_setset([])bool(b_set) False