다음과 같은 목록이 있습니다.
[['a','b','1','2']['c','d','3','4']]
이 목록을 사전으로 변환하고 싶습니다.
{
('a','b'):('1','2'),
('c','d'):('3','4')
}
예를 들어, 키의 경우 ( 'a', 'b') & ( 'c', 'd'), 값의 경우 ( '1', '2') & ( '3', '4')
그래서 다음과 같은 코드를 사용했습니다.
new_dict = {}
for i, k in enumerate(li[0:2]):
new_dict[k] =[x1[i] for x1 in li[2:]]
print(new_dict)
,하지만 해시 할 수없는 유형 오류 '목록'이 발생했습니다.
다른 방법을 시도했는데 잘 안되네요 .. 고칠 수있는 방법이 있나요?
list
열쇠로 가질 수는 없지만 tuple
가능합니다. 또한 목록에서 슬라이스 할 필요가 없지만 하위 목록에서.
sublist[:2]
키로 첫 번째 값 2 개가 필요하고 해당 값은 인덱스 2의 하위 목록입니다.sublist[2:]
new_dict = {}
for sublist in li:
new_dict[tuple(sublist[:2])] = tuple(sublist[2:])
print(new_dict) # {('a', 'b'): ('1', '2'), ('c', 'd'): ('3', '4')}
dict 이해도 동일
new_dict = {tuple(sublist[:2]): tuple(sublist[2:]) for sublist in li}
print(new_dict) # {('a', 'b'): ('1', '2'), ('c', 'd'): ('3', '4')}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다