2011-01-24 7 views
1

사전 요소에 "태그 지정"하는 것과 동일한 작업을 수행하고 싶습니다. 이런 일이태그 지정 사전 데이터

mydict = dict() 
mydict['thiskey'] = 'myvalue' 
#then i would like to do this: 
mydict['thiskey'].tag = 1 

가 : 여기

는 아이디어를 설명하는 몇 가지 의사 코드인가? 또는 어쩌면 내가 어떻게 든 값에 추가 할 수 있을까요? 하지만 원래 값에 액세스하는 방법을 알아야합니다.

답변

3
>>> class MyStr(str):pass 
... 
>>> mydict = dict() 
>>> mydict['thiskey'] = MyStr('myvalue') 
>>> mydict['thiskey'].tag = 1 
+0

1 : 당신은 단순히이 문자열을 사용하여 쓸 수 있습니다 해결책. – aaronasterling

+0

그리고 만약 내가 태깅을 사용하지 않았다면 - 단순히 mydict [ 'thiskey'] = (myvalue, 1)와 같은 것을 쓸 수 있을까요? 그렇다면 두 번째 항목의 가치를 어떻게 수정합니까? 마치 mydict [ 'thiskey'] [1] = 33 또는 유사할까요? – jml

+0

@jml, 튜플을 사용할 수 없지만 목록이 작동합니다. - 'mydict ['thiskey '] = [myvalue, 1]' –

3

두 가지 가능성은 태그와 값만 포함하는 간단한 TaggedData 클래스를 만드는 것입니다. 또는 '태그'와 '값'키만있는 값으로 사전을 사용하십시오.

2
mydict = dict() 
mydict['thiskey'] = TaggedObject("myvalue") 
mytag = Tag("tagName") 
mydict['thiskey'].tag = mytag 

그래서 당신은 두 개의 클래스 TaggedObjectTag을 작성해야하지만 후자는 선택 사항입니다 : 이것은 가장 우아한

mydict = dict() 
mydict['thiskey'] = TaggedObject("myvalue") 
mydict['thiskey'].tag = "tagName"