【问题标题】:how to take spesific value in list dictionary如何在列表字典中获取特定值
【发布时间】:2020-04-04 16:38:00
【问题描述】:

这是我的全部代码

a = str(input("parent1 :"))
b = str(input("parent2 :"))


p = {'rose':'R_P_', 'pea':'rrP_'}
print(p[a] +" : "+p[b])

f = []

print('gamet 1 : ' + p[a][0]+p[a][2])
print('gamet 2 : ' + p[b][0]+p[b][2])

g = f

aa=(sorted(p[a][0]+p[b][0]))
bb=(sorted(p[a][2]+p[b][2]))

def convert(s): 

    # initialization of string to "" 
    new = "" 

    # traverse in the string  
    for x in s: 
        new += x  

    # return string  
    return new

gamet = convert(aa)+convert(bb)
gamet1 = list(gamet)
print(gamet +" x " + gamet)

dictgen = {0:gamet[0]+gamet[2], 1:gamet[0]+gamet[3], 2:gamet[1]+gamet[2], 3:gamet[1]+gamet[3]}
l=0
ll=0
gen={}
for k in range(len(dictgen)):
    for j in range(4):
        gen[l] = dictgen[k].join(dictgen[j])
        l += 1
print(gen)
genn={}
for x in range(4):
    for p in range(4):
        genn[ll]=(sorted(convert(gen[p])))
        ll += 1

print(genn)

gen1=[]
for x in range(0,15):
    gen1[x]=genn[x][0].join(genn[x][1])

print(gen1)

这是关于 genn 中值的示例 {0:['P','P','R','R'],1:['P','P','R','R'],2:['P','P ', 'R', 'r'], 3: ['P', 'P', 'R', 'r'], 4: ['P', 'P', 'R', 'R'] , 5: ['P', 'P', 'R', 'R'], 6: ['P', 'P', 'R', 'r'], 7: ['P', 'P' ', 'R', 'r'], 8: ['P', 'P', 'R', 'R'], 9: ['P', 'P', 'R', 'R'] , 10: ['P', 'P', 'R', 'r'], 11: ['P', 'P', 'R', 'r'], 12: ['P', 'P ', 'R', 'R'], 13: ['P', 'P', 'R', 'R'], 14: ['P', 'P', 'R', 'r'] , 15: ['P', 'P', 'R', 'r']}

我想使用此代码在 genn 字典值中按索引 [0] 和 [1] 取值 gen1=[]

for x in range(0,15):
    gen1[x]=genn[x][0].join(genn[x][1])

print(gen1)

我得到了错误

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-25-3f9d7067d375> in <module>
     51 gen1=[]
     52 for x in range(0,15):
---> 53     gen1[x]=genn[x][x][0].join(genn[x][x][1])
     54 
     55 print(gen1)

IndexError: string index out of range

【问题讨论】:

    标签: python list dictionary indexing functional-programming


    【解决方案1】:

    你说要运行的代码和你实际运行的代码是不一样的。

    for x in range(0,15):
        gen1[x]=genn[x][0].join(genn[x][1])
    

    不一样
    for x in range(0,15):
        gen1[x]=genn[x][x][0].join(genn[x][x][1])
    

    x 是0。

    genn[0] # -> ['P', 'P', 'R', 'R']
    genn[0][0] # -> 'P'
    genn[0][0][1] # -> IndexError: string index out of range
    

    【讨论】:

      猜你喜欢
      • 2020-04-18
      • 1970-01-01
      • 2020-11-10
      • 2018-08-30
      • 2016-11-20
      • 2021-02-10
      • 1970-01-01
      • 2017-10-23
      • 2022-01-14
      相关资源
      最近更新 更多