How to use Python sets and add strings to it in as

2020-02-10 11:37发布

I am trying to create a dictionary that has values as a Set object. I would like a collection of unique names associated with a unique reference). My aim is to try and create something like:

AIM:

Dictionary[key_1] = set('name')    
Dictionary[key_2] = set('name_2', 'name_3')

Adding to SET:

Dictionary[key_2].add('name_3')

However, using the set object breaks the name string into characters which is expected as shown here. I have tried to make the string a tuple i.e. set(('name')) and Dictionary[key].add(('name2')), but this does not work as required because the string gets split into characters.

Is the only way to add a string to a set via a list to stop it being broken into characters like

'n', 'a', 'm', 'e'

Any other ideas would be gratefully received.

2条回答
神经病院院长
2楼-- · 2020-02-10 12:11

You can write a single element tuple as @larsmans explained, but it is easy to forget the trailing comma. It may be less error prone if you just use lists as the parameters to the set constructor and methods:

Dictionary[key_1] = set(['name'])    
Dictionary[key_2] = set(['name_2', 'name_3'])

Dictionary[key_2].add(['name_3'])

should all work the way you expect.

查看更多
Explosion°爆炸
3楼-- · 2020-02-10 12:13

('name') is not a tuple. It's just the expression 'name', parenthesized. A one-element tuple is written ('name',); a one-element list ['name'] is prettier and works too.

In Python 2.7, 3.x you can also write {'name'} to construct a set.

查看更多
登录 后发表回答