如何按照字母对应数组的值求 四个字母对应数值求和(头发抠完了)

 关闭 [复制链接]
作者: 专业修理工 | 时间: 2021-4-16 23:31:44 | 已解决|
3 212
结帖率:50% (1/2)
发表于 2021-4-16 23:31:44| 显示全部楼层 |阅读模式
13金币


[Python] 纯文本查看 复制代码
A = [[0.089684],[0.176115], [0.280204], [0.075743], [0.005576],
C = [[0.319703],[0.187732], [0.076673], [0.839684], [0.991636], 
G = [[0.125],   [0.427974], [0.519052], [0.039963], [0.002788], 
T = [[0.465613],[0.208178], [0.124071], [0.04461],  [0],

这样一列数组
然后txt文本里面有 CGTAATACAATAACAA 这样一串字母
CGTAATAC分别以位数 对应数组里面的值 对应方式举例i如下
例如
C 第一 对应C的这行第一个值便是 0.089684
G 第二对应G的这行的第二个值便是 0.427974
T  第三 便是 0.124071
A 第四 便是  0.075743

依次往后的字母ATAC
A=0.089684  T=0.208178  A=0.280204   C=0.839684  
如此对应 依次循环每四位字母对应数组里面的值求和 求和的值写出到txt 文本里面

直到文本里面的字母按照四个字母一组按照以上对应的数值算玩后程序停止  

我去菜鸟网站学习了一下发现并不能灵活运用 帮助文档也看了都无法自己独立实现这个一个功能

希望有个前辈能按照这个方式写一个 python例程上传 提供参考学习 万分感谢。 一共就这么多金币了




附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

[mw_shl_code=python,true]item = { 'A': [[0.089684], [0.176115], [0.280204], [0.075743], [0.005576]], 'C': [[0.319703], [0.187732], [0.076673], [0.839684], [0.991636]], 'G': [[0.125], [0.427974], [0.519052], [0.039963], [0.002788]], 'T': [[0.465613], [0.208178], [0.124071], [0.04461], [0]] } g_str = "CGTAATACAATAACAA" g_sub = 0 g_sum = 0 for i in range(len(g_str)): v = g_str ...
发表于 2021-4-16 23:31:45| 显示全部楼层


[Python] 纯文本查看 复制代码
item = {
    'A': [[0.089684], [0.176115], [0.280204], [0.075743], [0.005576]],
    'C': [[0.319703], [0.187732], [0.076673], [0.839684], [0.991636]],
    'G': [[0.125], [0.427974], [0.519052], [0.039963], [0.002788]],
    'T': [[0.465613], [0.208178], [0.124071], [0.04461], [0]]
}

g_str = "CGTAATACAATAACAA"
g_sub = 0
g_sum = 0

for i in range(len(g_str)):
    v = g_str
    print("字母", v, "位置", g_sub, "数值", item[v][g_sub][0])
    g_sub = g_sub + 1
    g_sum += item[v][g_sub][0]
    if g_sub == 4:
        g_sub = 0
        print("相加结果", g_sum)
        g_sum = 0

有点错、改了一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

结帖率:50% (1/2)
 楼主| 发表于 2021-4-17 00:27:03| 显示全部楼层
<i > 这里错了么
回复

使用道具 举报

签到天数: 10 天

发表于 2021-4-17 12:44:21| 显示全部楼层
[Python] 纯文本查看 复制代码
item = {
    'A': [0.089684, 0.176115, 0.280204, 0.075743, 0.005576],
    'C': [0.319703, 0.187732, 0.076673, 0.839684, 0.991636],
    'G': [0.125, 0.427974, 0.519052, 0.039963, 0.002788],
    'T': [0.465613, 0.208178, 0.124071, 0.04461, 0],
}

text = 'CGTA'
result = sum(map(lambda x: item[x[1]][x[0]], enumerate(text)))
print(result)

不明白你的数据为什么是列表嵌套列表?
如果非要是列表嵌套列表, 那就改成: item[x[1]][x[0]][0]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

!jz_fbzt! 快速回复 !jz_sctz! !jz_fhlb! 按钮
快速回复 返回列表 返回顶部