python-3.x - 遍历字典以创建多个列表/字符串
问题描述
我有一本看起来像这样的字典:
a = {
(1, 'M'): 0.106997,
(2, 'R'): 0.167087,
(3, 'H'): 0.25406,
(4, 'I'): 0.332115,
(5, 'I'): 0.324872,
(6, 'C'): 0.328603,
...
}
键代表蛋白质序列中的位置以及该位置的氨基酸。该值是介于 0 和 1 之间的某个数字。如果该值大于或等于 0.4 ,我正在尝试编写一些将连续氨基酸串在一起的代码。当它到达一个值小于 0.4 的氨基酸时,它需要继续阅读字典,直到它到达另一组值大于/等于 0.4 的连续氨基酸。理想情况下,这将创建多个独立的氨基酸串。
这是我的代码
import re
import requests
URL = 'https://iupred2a.elte.hu/iupred2a/long/P03255.json'
response = requests.get(URL)
out = response.json()
seq = out['sequence']
score = out['iupred2']
seq_num = enumerate(seq, start=1)
merge = dict(zip(seq_num, score))
region = ''
for key, value in merge.items():
if value >= 0.40:
region += key[1]
print(region)
与此连接所有值超过 0.4 的氨基酸。我需要对此进行修改,以便仅连接值超过 0.4 的连续氨基酸。
解决方案
如果我理解正确,您想创建一个区域列表,其中一个区域是一串符合您的连续值标准的氨基酸。如果是这样,那么这可能会为您解决问题:
region_list = []
region = ""
for key, value in merge.items():
if value >= 0.40:
region += key[1]
elif region:
region_list.append(region)
region = ""
if region:
region_list.append(region)
for region in region_list:
print(region)
A
DQLIEEVLADNLPPPSHFEPPTLHELYDLDVTAPEDPNEEAVSQIFPDS
GIDLLTFPPAPGSPEPPHLSRQPEQPEQRALGPVSMPNLVPEVIDLTCHEAGFPPSDDEDEEGEEFVLDYVE
CRSCHYH
SPVSEPEPEPEPEPEPARPTRRPKMAPAILRRPTSPVSRECNSSTDSCDSGPSNTPPEIHPVVP
PV
V
G
RQAVECIEDLLNEPGQPLDLSCKRPRP
推荐阅读
- python - 如果有多个值,则从 defaultdict 中提取值
- aws-event-bridge - 带有自定义详细信息的 AWS EventBridge 计划事件?
- flutter - 如何在两个类之间传递 DocumentSnapshot Id?
- javascript - 函数中的jQuery事件注册问题
- amazon-web-services - 生成 cloudformation 中可用的 AWS 产品列表
- react-native - 在不使用 Flatlist 的情况下,在本机反应中呈现可变数量的项目 n(在我的示例中为 2)
- string - 如何通过正则表达式匹配 3 和 4 字节 UTF-8
- jwt - OPA 参考语言:如何知道变量的类型
- javascript - 使用javascript替换Excel中的占位符文本
- python - 即使我做了所有需要的事情,我在 heroku 上的烧瓶网络应用程序也无法上线,并且我在日志中显示构建成功