본문 바로가기
파이썬

파이썬 문자열을 문자열 집합에 매핑하는 Python 사전?

by º기록 2020. 12. 17.
반응형

문자열을 키로 사용하고 문자열 세트를 값으로 사용하여 Python 사전을 만들 수 있기를 바랍니다. 예 : { "crackers": [ "crunchy", "salty"]} 목록이 아닌 세트 여야합니다.

그러나 다음을 시도 할 때 :

  word_dict = dict()
  word_dict["foo"] = set()
  word_dict["foo"] = word_dict["foo"].add("baz")                                    
  word_dict["foo"] = word_dict["foo"].add("bang")

나는 얻다:

Traceback (most recent call last):
  File "process_input.py", line 56, in <module>
    test()
  File "process_input.py", line 51, in test
    word_dict["foo"] = word_dict["foo"].add("bang")
AttributeError: 'NoneType' object has no attribute 'add'

이렇게하면 :

  word_dict = dict()
  myset = set()
  myset.add("bar")
  word_dict["foo"] = myset
  myset.add("bang")
  word_dict["foo"] = myset

  for key, value in word_dict:                                                       
      print key,                                                                
      print value

나는 얻다:

Traceback (most recent call last):
  File "process_input.py", line 61, in <module>
    test()
  File "process_input.py", line 58, in test
    for key, value in word_dict:
ValueError: too many values to unpack

내가 원하는 것을하도록 파이썬을 강요하는 방법에 대한 팁이 있습니까? 저는 중급 Python 사용자입니다 (또는이 문제가 발생할 때까지 생각했습니다.)

 

해결 방법

 

set.add () 는 새로운 set 을 반환하지 않으며 호출 된 set 을 수정합니다. 다음과 같이 사용하십시오.

word_dict = dict()
word_dict["foo"] = set()
word_dict["foo"].add("baz")                                    
word_dict["foo"].add("bang")

또한 for 루프를 사용하여 dict를 반복하는 경우 키를 반복하는 것입니다.

for key in word_dict:
   print key, word_dict[key]

또는 word_dict.items () 또는 word_dict.iteritems () 를 반복 할 수 있습니다.

for key, value in word_dict.items():
   print key, value

 

참조 페이지 https://stackoverflow.com/questions/2285874

 

 

반응형

댓글