【问题标题】:Index of a dictionary value字典值的索引
【发布时间】:2016-05-25 15:52:00
【问题描述】:

在下面的代码中,我试图在下面的 MinimunSkew 函数中访问字典值的索引。如果字典存储在变量 s 中并且我正在遍历这些值以查找变量 m 的所有索引,则以下代码只给我第一个索引而不是第二个等:

对于 s.values() 中的 i: 位置 = s.values().index(m)

如何获取变量 m 值字典中的所有索引?

完整代码: 基因组="TAAAGACTGCCGAGAGGCCAACACGAGTGCTAGAACGAGGGGCGTAAACGCGGGTCCGAT"

def Skew(Genome):
skew = {}
n = len(Genome)
skew[0]=0
for i in range(1,n+1):
    skew[i] = skew[i-1]
    if Genome[i-1] == "G":
        skew[i] = skew[i-1]+1
    elif Genome[i-1] == "C":
        skew[i] = skew[i-1]-1  
    else:
        skew[i]=skew[i-1]
return skew
Skew(Genome)


def MinimumSkew(Genome):
positions=[]
s = Skew(Genome)
m = min(s.values())

for i in s.values():
    positions = s.values().index(m)

return positions
print MinimumSkew(Genome)

【问题讨论】:

    标签: python loops for-loop dictionary indexing


    【解决方案1】:

    MinimumSkew 的 for 循环不返回位置,因为字典没有索引属性。 min(s.values()) 仅返回字典的最小值。您需要修改您的代码。这是修改后的版本:

     def MinimumSkew(Genome):
                positions =[]
                s = Skew(Genome)
                minimumValue = min(s.values())
    
                for (k,v) in s.items():
                    if v == minimumValue:
                        positions.append(k)
                return positions
    
     Genome = "GCATGCTTCGCATATGCTTGAACAACG"
     print(MinimumSkew(Genome))
    

    输出:[26]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-26
      • 1970-01-01
      • 2021-12-01
      相关资源
      最近更新 更多