【发布时间】:2018-03-19 12:28:00
【问题描述】:
我有一个频率列表(即 freq_lst),需要通过嵌套列表检索才能进行计算。使用freq_lst和r_freq进行计算,如下图:
freq_lst = [0.03571429, 0.03571429, 0.07142857, 0.07142857, 0.10714286, 0.07142857, 0.07142857, 0.03571429, 0.07142857, 0.03571429, 0.03571429, 0.03571429, 0.07142857, 0.03571429, 0.03571429, 0.03571429, 0.03571429, 0.03571429, 0.03571429, 0.03571429]
nested_lst = [['R0','F1','F3','F5','F7','F9','F10'],
['R1','F0','F4','F7','F10','F16'],
['R2','F6','F7','F9','F13','F17','F18'],
['R3','F2','F8','F10','F18','F19'],
['R4','F10','F11','F12','F14','F15','F16']]
r_lst = ['R0','R1','R2','R3','R4']
r_freq = [0.1, 0.2, 0.2, 0.2, 0.3]
def mating_func():
mating = []
for k in range(len(r_lst)):
for k1 in range(len(nested_lst)):
zgt = 0
if r_lst[k] == nested_lst[k1][0]:
print(freq_lst.index(nested_lst[k1][k2+1] for k2 in range(len(nested_lst[k1]))))
zgt += r_freq[k] * freq_lst.index(nested_lst[k1][k2+1] for k2 in range(len(nested_lst[k1])))
mating.append(zgt)
return mating
但它并没有得到频率,而是只打印了以下内容:
<generator object mating_func.<locals>.<genexpr> at 0x0000020C1D1A8620>
<generator object mating_func.<locals>.<genexpr> at 0x0000020C1D1A8620>
<generator object mating_func.<locals>.<genexpr> at 0x0000020C1D1A8620>
<generator object mating_func.<locals>.<genexpr> at 0x0000020C1D1A8620>
<generator object mating_func.<locals>.<genexpr> at 0x0000020C1D1A8620>
我还尝试了以下方法:
(nested for-loops shown as before)
for k2 in range(len(nested_lst[k1])):
if rnase_list[k] == zygotes[k1][0]
zgt += r_freq[k] * freq_lst.index(nested_lst[k1][k2+1])
导致以下错误:
ValueError: 'F1' is not in list
【问题讨论】:
-
问题出在哪里?
-
. at 0x0000020C1D1A8620> . at 0x0000020C1D1A8620> . 在 0x0000020C1D1A8620> . at 0x0000020C1D1A8620> . at 0x0000020C1D1A8620> -
你希望这个做什么
zgt += r_freq[k] * freq_lst.index(nested_lst[k1][k2+1] for k2 in range(len(nested_lst[k1]))) -
仅供参考,
freq_lst.index(<value>)将返回freq_list中<value>的第一个索引 -
F1等符号与freq_lst中的数字有什么联系?您在 freq_list 中查找带有 'index' 的内容,但您拥有的是一个符号,并且该列表仅包含数字。
标签: python recursion simulation genetic-algorithm nested-lists