2016-06-03 2 views
1

사용자가 사람 이름, 주소 및 번호를 저장할 수있는 '닉네임'으로 색인 된 연락처 북을 만들려고합니다. 그러나 사전을 사용하는 방법을 이해하지 못합니다. 목록을 사용하는 방식을 사용한다면 사전을 사용하십시오. 예컨대사전을 사용하여 파이썬에서 '연락처 북'을 만드는 방법은 무엇입니까?

myList = [["Tom","1 Fairylane", "911"],["Bob","2 Fairylane", "0800838383"]] 

그리고 난 그냥 패턴을 검색하기 위해 좀 더 코드를 사용하는 것이 어떤 접촉을보고 싶어합니다. 하지만 사전으로 어떻게하는지 알아낼 수 없습니다.

답변

3
당신이 시작할 수

: 당신은 단순히 액세스 레코드가

my_dict["Tom"]["name"] 

또는

를 사용 할 수

다음
my_dict = {"Tom": {"name": "Tom Jones", "address": "1 Fairylane", "phone": "911"}, 
      "Bob": {"name": "Bob Marley", "address": "2 Fairylane", "phone": "0800838383"} 
      } 

my_dict["Bob"]["phone"] 
+0

네,하지만이 문제는 키가 '닉네임'이어야하며 '이름'(정식 이름은 "Tom Someone")이 또 다른 데이터 값입니다. 죄송합니다. 제대로 설명하지 않았을 수도 있습니다. – oneman

+0

그건 중요하지 않습니다. 내부 사전에 많은 속성을 추가 할 수 있습니다. 예를 들어 업데이트 된 답변을 참조하십시오. – Selcuk

2

사전에있는 키는 고유합니다. 당신은 어떤 이름으로 연락처 목록이있는 경우 그래서 두 번이 같은 코드를 사용할 수 있습니다

contacts = {} 
contacts['Tom'] = ["1 Fairylane", 911] 
contacts['Bob'] = ["2 Fairylane", 0800838383] 

때문에 사전에 데이터를 추가하는 액세스 연산자 []을 기반으로합니다. 준비 데이터 사전을 초기화 할 경우 는이 같은 코드를 사용 : 특정 접촉

contacts = {'Tom' : ["1 Fairylane", 911], 
      'Bob' : ["2 Fairylane", 0800838383]} 

액세스는 다음과 같이 작동

print(contacts['Tom']) 

주, 두 번째를 가지고 있다면, "Tom"이라고 말하면 작동하지 않습니다. 당신은 출생 LASTNAME 또는 무엇이든 만들 수의 날짜를 추가해야 할 것 그것이 유일한

2

DomTomCat에서 언급했듯이 사전 키를 첫 번째 이름으로 설정하고 데이터 t 암탉은 목록에 포함되어 있습니다. 한 가지 유의할 것은 사전은 정렬되지 않는다는 것입니다. 따라서 키에 대한 매우 빠른 검색 (본질적으로 해시 테이블)을 제공하는 반면 검색 결과의 정렬 된 하위 집합을 표시하려면 약간의 작업이 필요합니다.

관련 문제