【问题标题】:Save every fourth item in a list to a key in dictionary in python将列表中的每第四个项目保存到python字典中的一个键
【发布时间】:2020-10-06 14:27:33
【问题描述】:

我需要将列表的每第四项保存为 python 中的键,然后从每第四项 5 作为值开始,每第四项从 6 开始作为值(该值将是一个列表)

我有一个如下所示的文本文件: GeneID NumC NumL NumP ENSEMBL001 15 5 30 ENSEMBL002 60 0 10 ENSEMBL003 25 5 41 ENSEMBL004 20 7 0 ENSEMBL005 40 22 67 ENSEMBL006 81 77 9 ENSEMBL007 2 88 2 ENSEMBL008 8 62 90

我想制作一个字典,其中“ENSEMBL”值是键,前两个数字是与该键关联的值

我已经为字典的第一个值编写了代码:

    dict_lung = {
        file_name[4] : (file_name[5], file_name[6])
    }

打印时,这将是一个带有键 ENSEMBL001 和值 (15,5) 的字典

我想做的是让字典遍历整个文本文件并保存这些值。例如,字典中保存的下一个键和值将是

file_name[8] : (file_name[9], file_name[10])

我尝试创建一个 for 循环,但不断出错,不胜感激

【问题讨论】:

  • 所以写一个循环来完成它。你熟悉循环吗?
  • 是的,我写了一个循环,我得到一个 ValueError: too many values to unpack
  • 我在编写循环时遇到问题
  • 可以分享代码吗?
  • i=4 j=5 k=6 for i,j,k in list: dict_lung = { file_name[i] : (file_name[j], file_name[k]) } i+4 j +4 k+4

标签: python dictionary bioinformatics biopython


【解决方案1】:

所以基本上这是一个硬编码问题。它基于您使用的逻辑:

但您可以使用以下循环,其中 MAX 将是允许索引的最大数量(不要忘记您需要小心超出列表):

for i in range(4, MAX, 4):
    dict_lung = { file_name[i] : (file_name[i+1], file_name[i+2]) }

来自注释循环:

i=4 j=5 k=6 
for i,j,k in list: 
    dict_lung = { file_name[i] : (file_name[j], file_name[k]) } 
    i+4 j+4 k+4

我不确定 list 是什么,但它不是包含 3 元组的列表。请阅读有关在 python 中解包 https://www.geeksforgeeks.org/packing-and-unpacking-arguments-in-python/

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 2021-07-23
    • 2022-06-23
    • 2018-09-24
    • 1970-01-01
    相关资源
    最近更新 更多