이 글에서는 주로 목록의 사전 요소를 정렬하는 Python프로그래밍방법을 소개하며, 목록과 사전 요소의 순회, 읽기, 변환과 관련된 Python의 조작 기술이 포함되어 있습니다. 도움이 필요한 친구는 이 글을 참조할 수 있습니다
예제에서는 방법을 설명합니다. Python 프로그래밍을 사용하여 목록의 사전 요소를 정렬합니다. 다음과 같이 참조용으로 모든 사람과 공유하세요.
1. 문제의 원인 2. 목록에서 사전 요소 정렬
jsonjsonobjecta,b
a = '{"ROAD": [{"id": 123}, {"name": "no1"}]}' b = '{"ROAD": [{"name": "no1"}, {"id": 123}]}'
list
(
()) 조합을 통해 목록을 읽고 정렬할 수 있습니다. 그러나 목록에 사전 요소가 포함되어 있으면 list(set()) 조합을 사용하면 됩니다. 사용할 수 없습니다. 팁을 참조하세요.
>>> a = [{'a':1, 'b':2}, {'c':3}] >>> a [{'a': 1, 'b': 2}, {'c': 3}] >>> b = set(a) Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> b = set(a) TypeError: unhashable type: 'dict'
그러면 문제의 본질은 목록에서 사전 요소를 정렬하는 방법입니다.
2. 목록의 사전 요소 정렬
다행히 목록에는 sorted
기능>>> p = [{'b': 2}, {'a': 1, 'c': 3}] >>> q = [{'a': 1, 'c': 3}, {'b': 2}] >>> p [{'b': 2}, {'a': 1, 'c': 3}] >>> q [{'a': 1, 'c': 3}, {'b': 2}] >>> pp = sorted(p) >>> qq = sorted(q) >>> pp [{'b': 2}, {'a': 1, 'c': 3}] >>> qq [{'b': 2}, {'a': 1, 'c': 3}] >>> pp == qq True >>> p == q False
3. json 비교(목록의 사전 순서 무시)
import json def compare_json(a, b): aa = json.loads(a) bb = json.loads(b) len_a = len(aa) len_b = len(bb) if len_a != len_b: return False else: for key in aa: if not bb.has_key(key): return False else: if sorted(aa[key]) != sorted(bb[key]): return False return True if name == "main": a = '{"ROAD": [{"id": 123}, {"name": "no1"}]}' b = '{"ROAD": [{"name": "no1"}, {"id": 123}]}' print compare_json(a, b)
위 내용은 Python 프로그래밍을 사용하여 목록의 사전 요소를 정렬하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!