python - 如何从python中的多个键中获取值
问题描述
d = {"AUG":"M",
("UAA","UAG","UGA"):'',
("GCU","GCC","GCA","GCG"):"A",
("CGU","CGC","CGA","CGG","AGA","AGG"):"R",
("AAU","AAC"):"N",
("GAU","GAC"):"D",
("UGU","UGC"):"C",
("UCU","UCC","UCA","UCG","AGU","AGC"):"S",
("CCU","CCC","CCA","CCG"):"P",
("ACU","ACC","ACA","ACG"):"T",
("GUU","GUC","GUA","GUG"):"V",
("UUA","UUG","CUU","CUC","CUA","CUG"):"L",
("AUU","AUC","AUA"):"I",
("UUU","UUC"):"F",
("UAU","UAC"):"Y",
("CAU","CAC"):"H",
("CAA","CAG"):"Q",
("AAA","AAG"):"K",
("GAA","GAG"):"E",
"UGG":"W",
("GGU","GGC","GGA","GGG"):"G"}
对于上面的字典,如果我尝试通过说 来访问值“S” d["AGC"]
,编译器会给我一个关键错误。我试图在这里查看其他问题,但找不到答案。
错误:
Traceback (most recent call last): File "p_synt.py", line 94, in <module>
print(d[str[:3]]) KeyError: 'AGC'
解决方案
如果您需要能够通过其 3 位数代码检索项目,您可以按照以下方式进行操作。
def find_value(d, key):
# check if complete key
if key in d:
return d[key]
# check if in a key list
for k, v in d.items():
if isinstance(k, tuple) and key in k:
return d[k]
用法
print(find_value(d, "AGC"))
>>> S
print(find_value(d, "UGG"))
>>> W
推荐阅读
- ruby-on-rails - 无法获取 current_user 设备和 oAuth facebook
- arrays - 在matlab中将与列中相同元素相对应的行保持在一起
- android - 使用 RxJava2CallAdapter 在 Retrofit2 中处理不同的响应格式
- python-xarray - 如何用 xarray 数据数组和 xarray 数据集减去/执行算术?
- javascript - 如何在 div 点击时调用函数,以及正确使用开关?
- node.js - 谷歌表格 API 帖子
- c - 在 C 中使用 GetAdaptersAddresses 获取网络适配器时访问冲突
- javascript - Angular 6 路由到延迟加载的嵌套模块
- java - 错误:覆盖 org.springframework.boot.CommandlineRunner 中的方法
- spring-boot - Spring Boot 使用 @RequestBody 清理 json