728x90
반응형

dictionary 17

중첩 된 Python dict를 객체로 변환 하는 방법

질문 : 중첩 된 Python dict를 객체로 변환 하시겠습니까? 일부 중첩 된 딕셔너리 및 목록 (예 : 자바 스크립트 스타일 개체 구문)이있는 딕셔너리에 대한 속성 액세스를 사용하여 데이터를 얻는 우아한 방법을 찾고 있습니다. 예를 들면 : >>> d = {'a': 1, 'b': {'c': 2}, 'd': ["hi", {'foo': "bar"}]} 다음과 같은 방법으로 액세스 할 수 있어야합니다. >>> x = dict2obj(d) >>> x.a 1 >>> x.b.c 2 >>> x.d[1].foo bar 재귀 없이는 불가능하다고 생각하지만 dicts에 대한 객체 스타일을 얻는 좋은 방법은 무엇입니까? 답변 업데이트 : Python 2.6 이상에서는 namedtuple 데이터 구조가 필요에 맞는지 고..

Python으로 새 딕셔너리 만들기

질문 : Python으로 새 사전 만들기 파이썬으로 사전을 만들고 싶습니다. 그러나 내가 보는 모든 예제는 목록 등에서 사전을 인스턴스화합니다. .. 파이썬에서 새 빈 사전을 어떻게 생성합니까? 답변 매개 변수없이 dict 호출 new_dict = dict() 또는 단순히 쓰십시오 new_dict = {} 출처 : https://stackoverflow.com/questions/8424942/creating-a-new-dictionary-in-python

파이썬에서 딕셔너리 키를 리스트로 반환하는 방법

질문 : 파이썬에서 사전 키를 목록으로 반환하는 방법은 무엇입니까? Python 2.7 에서는 사전 키 , 값 또는 항목 을 목록으로 가져올 수 있습니다. >>> newdict = {1:0, 2:0, 3:0} >>> newdict.keys() [1, 2, 3] 이제 Python> = 3.3 에서 다음과 같은 결과를 얻습니다. >>> newdict.keys() dict_keys([1, 2, 3]) 따라서 목록을 얻으려면 이렇게해야합니다. newlist = list() for i in newdict.keys(): newlist.append(i) Python 3 에서 목록을 반환하는 더 좋은 방법이 있는지 궁금합니다. 답변 list(newdict.keys()) 시도하십시오. 그러면 dict_keys 객체가 목..

파이썬 두 딕셔너리를 결합하는 방법

질문 : 두 딕셔너리를 결합하는 파이썬적인 방법이 있습니까 (둘 다에 나타나는 키에 대한 값 추가)? 예를 들어 두 가지 사전이 있습니다. Dict A: {'a': 1, 'b': 2, 'c': 3} Dict B: {'b': 3, 'c': 4, 'd': 5} 결과가 다음과 같이 두 가지 사전을 '결합'하는 파이썬 방식이 필요합니다. {'a': 1, 'b': 5, 'c': 7, 'd': 5} 즉, 키가 두 딕셔너리에 모두 나타나면 값을 추가하고 하나의 딕셔너리에만 나타나면 해당 값을 유지합니다. 답변 collections.Counter 사용하십시오. >>> from collections import Counter >>> A = Counter({'a':1, 'b':2, 'c':3}) >>> B = Counte..

딕셔너리를 위한 파이썬 "extend"

질문 : 사전을위한 파이썬 "확장" for 루프를 사용하지 않고 사전을 다른 사전으로 확장하는 가장 좋은 방법은 무엇입니까? 예를 들면 : >>> a = { "a" : 1, "b" : 2 } >>> b = { "c" : 3, "d" : 4 } >>> a {'a': 1, 'b': 2} >>> b {'c': 3, 'd': 4} 결과: { "a" : 1, "b" : 2, "c" : 3, "d" : 4 } 다음과 같은 것 : a.extend(b) # This does not work 답변 a.update(b) 최신 Python 표준 라이브러리 문서 출처 : https://stackoverflow.com/questions/577234/python-extend-for-a-dictionary

JavaScript에서 연관 배열 / 해싱을 수행하는 방법

질문 : JavaScript에서 연관 배열 / 해싱을 수행하는 방법 C #에서하는 것과 같은 방식으로 JavaScript를 사용하여 통계를 저장해야합니다. Dictionary statistics; statistics["Foo"] = 10; statistics["Goo"] = statistics["Goo"] + 1; statistics.Add("Zoo", 1); JavaScript에 Hashtable Dictionary 와 같은 것이 있습니까? 어떻게 이런 방식으로 값을 저장할 수 있습니까? 답변 JavaScript 객체를 연관 배열로 사용합니다. 연관 배열 : 간단히 말해서 연관 배열은 정수 대신 문자열을 인덱스로 사용합니다. 다음을 사용하여 개체 만들기 var dictionary = {}; JavaSc..

파이썬 딕셔너리 'has_key ()' vs'in'

질문 : 파이썬 사전에 'has_key ()'또는 'in'을 사용해야합니까? 무엇을하는 것이 더 나은지 궁금합니다. d = {'a': 1, 'b': 2} 'a' in d True 또는: d = {'a': 1, 'b': 2} d.has_key('a') True 답변 in 은 확실히 더 비단뱀 적입니다. 사실 has_key() 는 Python 3.x에서 제거되었습니다 . 출처 : https://stackoverflow.com/questions/1323410/should-i-use-has-key-or-in-on-python-dicts

Python : 딕셔너리가 비어 있는지 확인하는 방법

질문 : Python : '사전'이 비어 있는지 확인하는 것이 작동하지 않는 것 같습니다. 사전이 비어 있는지 확인하려고하는데 제대로 작동하지 않습니다. 그냥 건너 뛰고 메시지를 표시하는 것 외에는 아무것도없이 온라인으로 표시합니다. 이유는 무엇입니까? def isEmpty(self, dictionary): for element in dictionary: if element: return True return False def onMessage(self, socket, message): if self.isEmpty(self.users) == False: socket.send("Nobody is online, please use REGISTER command" \ " in order to register ..

파이썬 딕셔너리 컴프리헨션

질문 : 파이썬 사전 이해 파이썬에서 (키에 대해) 딕셔너리 컴프리헨션을 만들 수 있습니까? 딕셔너리 컴프리헨션 없이 다음과 같이 사용할 수 있습니다. l = [] for n in range(1, 11): l.append(n) 이것을 리스트 컴프리헨션으로 줄일 수 있습니다 : l = [n for n in range(1, 11)] . 그러나 사전의 키를 동일한 값으로 설정하고 싶다고 가정 해보십시오. 내가 할 수있는: d = {} for n in range(1, 11): d[n] = True # same value for each 나는 이것을 시도했다 : d = {} d[i for i in range(1, 11)] = True 그러나 for SyntaxError 가 발생합니다. 또한 (이 부분은 필요하지 ..

Python 딕셔너리에서 키를 제거하는 방법

질문 : Python 사전에서 키를 제거하려면 어떻게해야합니까? 사전에서 키를 삭제할 때 다음을 사용합니다. if 'key' in my_dict: del my_dict['key'] 이 작업을 수행하는 한 줄 방법이 있습니까? 답변 사전에 있는지 여부에 관계없이 키를 삭제하려면 dict.pop() 의 두 인수 형식을 사용하십시오. my_dict.pop('key', None) key 가 사전에 있으면 my_dict[key] 반환 None 반환합니다. 두 번째 매개 변수가 지정되지 않았고 (예 : my_dict.pop('key') ) key 가 존재하지 않으면 KeyError 가 발생합니다. 존재가 보장 된 키를 삭제하려면 다음을 사용할 수도 있습니다. del my_dict['key'] 키가 사전에 없으면 K..

딕셔너리의 문자열 표현을 딕셔너리으로 변환하는 방법

질문 : 사전의 문자열 표현을 사전으로 변환 하시겠습니까? 어떻게 변환 할 수 str (A)의 표현을 dict 로, 예를 들면 다음과 같은 문자열로 dict ? s = "{'muffin' : 'lolz', 'foo' : 'kitty'}" eval 을 사용하지 않는 것을 선호합니다. 그 밖에 무엇을 사용할 수 있습니까? 그 주된 이유는 그가 작성한 동료 클래스 중 하나가 모든 입력을 문자열로 변환하기 때문입니다. 이 문제를 다루기 위해 그의 수업을 수정하고 싶지는 않습니다. 답변 ast.literal_eval 사용할 수 있습니다. >>> import ast >>> ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}") {'muffin': 'lolz', 'foo..

파이썬 'for' 루프를 사용하여 딕셔너리 반복

질문 : 'for'루프를 사용하여 사전 반복 다음 코드에 약간 의아해합니다. d = {'x': 1, 'y': 2, 'z': 3} for key in d: print (key, 'corresponds to', d[key]) 내가 이해하지 못하는 것은 key 부분입니다. 파이썬은 사전에서 키를 읽기만하면된다는 것을 어떻게 인식합니까? key 은 파이썬에서 특별한 단어입니까? 아니면 단순히 변수입니까? 답변 key 는 변수 이름입니다. for key in d: 키와 값이 아니라 사전에있는 키를 단순히 반복합니다. 키와 값을 모두 반복하려면 다음을 사용할 수 있습니다. Python 3.x의 경우 : for key, value in d.items(): Python 2.x의 경우 : for key, value in..

dict.copy () 이해- shallow or deep?

질문 : dict.copy () 이해-얕거나 깊습니까? dict.copy() 대한 문서를 읽는 동안 사전의 얕은 사본을 만든다고합니다. 내가 따르는 책 (Beazley의 Python Reference)도 마찬가지입니다. m.copy () 메서드는 매핑 개체에 포함 된 항목의 얕은 복사본을 만들고 새 매핑 개체에 배치합니다. 이걸 고려하세요: >>> original = dict(a=1, b=2) >>> new = original.copy() >>> new.update({'c': 3}) >>> original {'a': 1, 'b': 2} >>> new {'a': 1, 'c': 3, 'b': 2} original 의 값을 업데이트 할 것이라고 가정했습니다 (그리고 'c': 3 추가). 목록을 위해 수행하는 ..

Python에서 dictionary의 임의 요소 액세스

질문 : Python에서 사전의 임의 요소에 액세스 mydict 가 비어 있지 않으면 다음과 같이 임의의 요소에 액세스합니다. mydict[mydict.keys()[0]] 이 작업을 수행하는 더 좋은 방법이 있습니까? 답변 Python 3에서 비파괴 및 반복 : next(iter(mydict.values())) Python 2에서 비파괴적이고 반복적으로 : mydict.itervalues().next() Python 2와 3 모두에서 작동하도록하려면 six 패키지를 사용할 수 있습니다. six.next(six.itervalues(mydict)) 이 시점에서 그것은 매우 비밀스럽고 차라리 귀하의 코드를 선호합니다. 항목을 제거하려면 다음을 수행하십시오. key, value = mydict.popitem()..

Python2에서 dict.items ()와 dict.iteritems ()의 차이점

질문 : Python2에서 dict.items ()와 dict.iteritems ()의 차이점은 무엇입니까? dict.items() 와 dict.iteritems() 사이에 적용 가능한 차이점이 있습니까? Python 문서에서 : dict.items() : 사전의 (키, 값) 쌍 목록 사본 을 반환합니다. dict.iteritems() : 사전의 (키, 값) 쌍에 대한 반복자 를 반환합니다. 아래 코드를 실행하면 각각 동일한 객체에 대한 참조를 반환하는 것 같습니다. 내가 놓친 미묘한 차이가 있습니까? #!/usr/bin/python d={1:'one',2:'two',3:'three'} print 'd.items():' for k,v in d.items(): if d[k] is v: print '\tth..

Java Map의 각 항목을 효율적으로 반복하는 방법

질문 : Java Map의 각 항목을 어떻게 효율적으로 반복합니까? Map 인터페이스를 구현하는 객체가 있고 그 안에 포함 된 모든 쌍을 반복하려는 경우 가장 효율적인지도 탐색 방법은 무엇입니까? 요소의 순서는 인터페이스에 대한 특정 맵 구현에 따라 달라 집니까? 답변 Map map = ... for (Map.Entry entry : map.entrySet()) { System.out.println(entry.getKey() + "/" + entry.getValue()); } On Java 10+: for (var entry : map.entrySet()) { System.out.println(entry.getKey() + "/" + entry.getValue()); } 출처 : https://stack..

pickle을 사용하여 dict을 저장하는 방법

질문 : pickle을 사용하여 사전을 저장하려면 어떻게해야합니까? 파이썬 문서가 제공하는 정보를 살펴 보았지만 여전히 약간 혼란 스럽습니다. 누군가 새 파일을 작성하는 샘플 코드를 게시 한 다음 피클을 사용하여 사전을 덤프 할 수 있습니까? 답변 이 시도: import pickle a = {'hello': 'world'} with open('filename.pickle', 'wb') as handle: pickle.dump(a, handle, protocol=pickle.HIGHEST_PROTOCOL) with open('filename.pickle', 'rb') as handle: b = pickle.load(handle) print a == b 출처 : https://stackoverflow.com..

728x90
반응형