2011-08-09 6 views
0

사람, 거리, 아일랜드 댄스 단과 같은 개체 컬렉션이있는 경우 이름 식별자가 있습니다.지도에 저장하는 것이 좋다고 생각되거나 나쁜 습관으로 간주되어 저장해야합니다. 매번 목록으로 검색하고 목록을 쿼리합니까?개체의 "이름"을지도에 포함시키는 것이 좋지 않습니까?

Ex.

class Person: 
    def __init__(self,name,age): 
     self.name=name 
     self.age=age 
a = [Person("karl",50),Person("abe",20)] 
vs 
b = {"karl" : Person("karl",50), "abe" : Person("abe",20)} 

편집 : 고유성 가정, 속도의 문제가 우려 될 수 있지만 일반적으로 선명도가 목표입니다.

+3

다릅니다. 고유 한 이름이 보장됩니까? 자주 사람들을 이름으로 보입니까? – cdhowie

+1

지도는 추상적 인 개념입니다. 이름으로 또는 다른 종류의 키를 사용하여 물건을 찾으면지도 (또는 키가 고유하지 않은 경우 멀티 맵)가 있습니다. 간단하면서도 비효율적 인 목록으로지도 개념을 구현할 수 있습니다. 또는 언어/라이브러리와 함께 제공되는 효율적인 기성품지도 구현을 사용할 수 있습니다 (매우 좋은 이유가없는 한 평소에해야 할 일입니다). –

+0

지도가 아닌 목록을 사용하는 이유는 무엇입니까? 어떻게 지구를 검색하면 선명도가 향상됩니까? – Marcin

답변

0

나는 당신이 같은 등 또한

일본어, 러시아어, 같은 로마 알파벳뿐만 아니라 다른 문자 집합을 작성할 수 있습니다 이름, 여러 인코딩, 처리 특히, 오히려 위험한 생각 , @cdhowie가 언급했듯이 유일성의 개념은 매우 중요합니다. 사용 된 별칭이 있다면 어느 것이 표준입니까?

마지막으로 오타 수정과 같은 변경 사항은 어떻게 처리합니까?

나는 많은 거꾸로 보지 않으며 나는 미래의 사용을 위해 많은 위험을 본다.

0

이 맵은 일정한 검색 시간 (좋음)을 제공하지만 데이터를 복제하고 있습니다 (불량). 성능상의 이유로 일정 조회 시간이 정말로 필요한 경우지도를 사용하지만 키가 객체의 값과 동기화되도록주의하십시오. 성능에 중요한 요소가 아니라면 배열로 유지하십시오.

관련 문제