文字列があり、最初にonlyその文字列を含むセットを作成したい場合、以下よりもPython的なアプローチがありますか?
mySet = set()
mySet.add(myString)
以下は、myString
の文字のセットです。
mySet = set(myString)
2.7および3.xでは、次を使用できます。
mySet = {'abc'}
たとえば、この簡単な方法:
mySet = set([myString])
_set_display ::= "{" (expression_list | comprehension) "}"
_
例:
_>>> myString = 'foobar'
>>> s = {myString}
>>> s
set(['foobar'])
>>> s = {'spam'}
>>> s
set(['spam'])
_
空の_{}
_はset
ではなく、dict
であることに注意してください。
set
のヘルプ:
_class set(object)
| set() -> new empty set object
| set(iterable) -> new set object
_
ご覧のとおり、set()
は反復可能であることを期待し、文字列も反復可能であるため、文字列の文字をセットに変換します。
文字列を反復可能に配置し、set()
に渡します。
_>>> set(('foo',)) #Tuple
set(['foo'])
>>> set(['foo']) #list
set(['foo'])
_
set(obj)
はobj
を繰り返し処理し、すべての一意の要素をセットに追加します。文字列も反復可能であるため、set()
に文字列を渡すと、セット内の一意の文字が取得されます。 objを最初にリストに追加できます。
_set(["mystring"])
_
しかし、それはエレガントなIMOではありません。空の辞書を作成する場合でも、dict()
よりも_{}
_をお勧めします。こっちも一緒。次の構文を使用します。
_myset = {"mystring"}
_
タプルの場合、その後にコンマが必要であることに注意してください。
_mytuple = ("mystring",)
_
セットも変更される可能性が低い場合は、frozenset
の使用を検討してください。
mySet = frozenset([myString])