【发布时间】:2017-03-22 14:51:13
【问题描述】:
我是 Python 新手,正在尝试找出如何解决以下问题。我有两个列表,list1 看起来像这样:
['10','12','12','23]
list2 看起来像这样:
['15','16','13','15']
我还有一个包含以下键值的字典:
dictionary = {
'10': 'AATGCGTAAGCTAGCGATAGATGCAACGTT',
'12': 'GGTCAGAGTTTATCGGTATGTTAGCATGGA',
'23': 'ATGGGCGCGTATATTAAAGGCGCCGCCCTG'
}
此字典中的键由 list1 中的元素组成。 list1 中的每个元素也与 list2 中的单个元素相关联(按顺序,list1 中的“10”与 list2 中的“15”相关联,list1 中的“12”与 list2 中的“16”相关联,等等)。
对于 list1 中的每个元素,我想取关联的字典值,并使用 list2 中的关联元素将字符插入特定位置以确定位置。到目前为止,我一直在研究一个 for 循环来做到这一点:
for i in list1:
dict_key = dictionary.get(i)
pos = int(list2[0])
full = dict_key[:pos] + '[' + dict_key[pos] + ']' + dict_key[(pos+1):]
print(full)
我希望我的最终输出如下所示:
AATGCGTAAGCTAGC[G]ATAGATGCAACGTT
GGTCAGAGTTTATCGG[T]ATGTTAGCATGGA
GGTCAGAGTTTAT[C]GGTATGTTAGCATGGA
ATGGGCGCGTATATT[A]AAGGCGCCGCCCTG
但我的输出目前看起来像这样,因为我专门要求 list2 中的索引 0:
AATGCGTAAGCTAGC[G]ATAGATGCAACGTT
GGTCAGAGTTTATCG[G]TATGTTAGCATGGA
GGTCAGAGTTTATCG[G]TATGTTAGCATGGA
ATGGGCGCGTATATT[A]AAGGCGCCGCCCTG
我想在循环的每次迭代中将 list2 中调用的元素增加 1,但我似乎无法弄清楚。我应该使用范围定义一个新变量吗?任何 cmets 将不胜感激!
【问题讨论】:
标签: python loops iteration increment