ProgramingTip

키 값을 사용하고 해당 값이없는 Python에서 사전 초기화

bestdevel 2020. 12. 14. 20:37
반응형

키 값을 사용하고 해당 값이없는 Python에서 사전 초기화


설치하기 전에 사용하는 방법이 궁금합니다. 예 :

Definition = {'apple': , 'ball': }

그런 다음 나중에 접근 할 수 있습니다.

Definition[key] = something

키만 초기화하고 싶지만 나중에 설정해야 할 때까지 해당 값을 알 수 없습니다. 기본적으로 발견 된 값을 추가하려는 키를 알고 있습니다. 감사합니다.


로 초기화 할 수 None있습니다.


fromkeys함수를 사용하여 메모리로 사전을 초기화합니다. 의 경우 귀하 None에는 기본값을 염두에 두지 않았으므로로 초기화 합니다.

empty_dict = dict.fromkeys(['apple','ball'])

다음 empty_dict과 같이 초기화 합니다.

empty_dict = {'apple': None, 'ball': None}

또는 이외의 경우에 사전을 초기화하려는 경우 None다음을 수행 할 수 있습니다.

default_value = 'xyz'
nonempty_dict = dict.fromkeys(['apple','ball'],default_value)

defaultdict를 사용할 수 있습니다. 키가 이미 존재하는지 여부를 선택하지 않고 접근 할 수 있습니다. (아래 예제에서는 초기화되지 않은 키에 액세스하면 값을 반환합니다).

from collections import defaultdict
your_dict = defaultdict(lambda : None)

목적이 무엇인지, 처음에 키를 초기화하려는 이유를 아는 것이 좋습니다. 나는 당신이 그렇게 할 필요가 전혀 확실합니다.

1) 키 발생 횟수를 계산 비용으로 다음을 수행하면됩니다.

Definition = {}
# ...
Definition[key] = Definition.get(key, 0) + 1

2) 만나지 않은 키에 대해 나중에 없음 (또는 다른 값)을 다시 얻을 수 있습니다 ().

Definition.get(key)  # returns None if key not stored
Definition.get(key, default_other_than_none)

3) 다른 모든 목적을 위해 예상되는 키 목록을 사용하고있을 가능성이 있는지 확인할 수 있습니다.

예를 들어 해당 키의 값만 저장하려는 경우 :

expected_keys = ['apple', 'banana']
# ...
if key_found in expected_keys:
    Definition[key_found] = value

또는 예상되는 모든 키를 찾았는지 확인 후 다음을 수행하십시오.

assert(all(key in Definition for key in expected_keys))

값을 빈 초기화로 초기화하고 나중에 발견하면 채울 수 있습니다.

dictionary = {'one':'','two':''}
dictionary['one']=1
dictionary['two']=2

q = input("Apple")
w = input("Ball")
Definition = {'apple': q, 'ball': w}

@ user2989027의 의견에 따르면 좋은 해결책은 다음과 같습니다.

definition = ['apple', 'ball']
data = {'orange':1, 'pear':2, 'apple':3, 'ball':4}
my_data = {}
for k in definition:
  try:
    my_data[k]=data[k]
  except KeyError:
    pass
print my_data

나는 여기서 멋진 일을하지 않고 고했다. 데이터와 빈 사전을 설정했습니다. 그런 다음 데이터 사전의 강력 키를 반복합니다. 각 값을 데이터에서 my_data로 복사하지만 데이터에 원하는 키가 없을 수있는 경우를 고려합니다.

참고 URL : https://stackoverflow.com/questions/20079681/initializing-a-dictionary-in-python-with-a-key-value-and-no-corresponding-values

반응형