programing

딕트할 파이썬 튜플

css3 2023. 6. 4. 22:26

딕트할 파이썬 튜플

튜플을 위해서,t = ((1, 'a'),(2, 'b')) dict(t)돌아온다{1: 'a', 2: 'b'}

당신을 위해 좋은 방법이 있나요?{'a': 1, 'b': 2}(키와 밸브가 바뀜)?

궁극적으로, 나는 돌아올 수 있기를 원합니다.1정해진'a'또는2정해진'b'아마도 딕트로 변환하는 것이 가장 좋은 방법은 아닐 것입니다.

시도:

>>> t = ((1, 'a'),(2, 'b'))
>>> dict((y, x) for x, y in t)
{'a': 1, 'b': 2}

조금 더 간단한 방법:

>>> t = ((1, 'a'),(2, 'b'))
>>> dict(map(reversed, t))
{'a': 1, 'b': 2}

Python 2.7을 사용하는 경우 훨씬 더 간결합니다.

>>> t = ((1,'a'),(2,'b'))
>>> {y:x for x,y in t}
{'a':1, 'b':2}
>>> dict([('hi','goodbye')])
{'hi': 'goodbye'}

또는:

>>> [ dict([i]) for i in (('CSCO', 21.14), ('CSCO', 21.14), ('CSCO', 21.14), ('CSCO', 21.14)) ]
[{'CSCO': 21.14}, {'CSCO': 21.14}, {'CSCO': 21.14}, {'CSCO': 21.14}]

동일한 키에 대해 여러 개의 값이 있는 경우, 다음 코드는 해당 값을 키에 해당하는 목록에 추가합니다.

d = dict()
for x,y in t:
    if(d.has_key(y)):
        d[y].append(x)
    else:
        d[y] = [x]

다음은 몇 가지 방법입니다.

>>> t = ((1, 'a'), (2, 'b'))

>>> # using reversed function
>>> dict(reversed(i) for i in t)
{'a': 1, 'b': 2}

>>> # using slice operator
>>> dict(i[::-1] for i in t)
{'a': 1, 'b': 2}

Python 3.6 이상에서는 다음과 같은 기능을 제공합니다.

mydict=myty._asdict()

언급URL : https://stackoverflow.com/questions/3783530/python-tuple-to-dict