키 값을 사용하고 해당 값이없는 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로 복사하지만 데이터에 원하는 키가 없을 수있는 경우를 고려합니다.
'ProgramingTip' 카테고리의 다른 글
십진수 속성을 통화로 포맷하는 방법 (0) | 2020.12.14 |
---|---|
Microsoft SQL Server에서 데이터베이스 삭제 및 재생성 (0) | 2020.12.14 |
Objective-C에서 Swift String 열거 형을 사용하는 방법은 무엇입니까? (0) | 2020.12.14 |
장고 : 사용 (0) | 2020.12.14 |
레일스 POST, PUT, GET (0) | 2020.12.14 |