我有两个列表:list_1 = [0,1,0,0,1,1,0,1,1,0] 和 list_2 = [1,2,2 ,4,4,6,7,8,8,10] 具有相同数量的元素。我试图遍历这些列表以在 4 个单独的值中使用,这些值将成为函数的一部分。
我到目前为止:
list_1 = [0,1,0,0,1,1,0,1,1,0]
list_2 = [1,2,2,4,4,6,7,8,8,10]
for i,x in enumerate(list_1):
var_list_1_1 = x
var_list_1_2 = [z for y,z in enumerate(list_1) if y != i]
var_list_2_1 = list_2[i]
var_list_2_2 = [z for y,z in enumerate(list_2) if y != i]
print("{}\n{}\n{}\n{}".format(var_list_1_1,var_list_1_2, var_list_2_1,var_list_2_2))
这打印正确,但我不确定这是否是最好的方法。我将使用它处理大约一到两千行数据,但不确定这是否会成为一个问题。我在这个项目中使用 numpy 和 pandas 作为其他库,所以这些解决方案也可以工作。感谢您提供任何见解。
编辑: 我希望每个循环都能产生类似于下面的内容。它是项目,然后是没有该项目的列表。两个列表必须是相同的项目索引。如果有帮助,我正在为 scikit 学习制作一个训练/测试功能集/数组和一个训练/测试目标数组。我只想迭代训练整个集合并测试单个值。
var_list_1_1 = 0
var_list_1_2 = [1,0,0,1,1,0,1,1,0]
var_list_2_1 = 1
var_list_2_2 = [2,2,4,4,6,7,8,8,10]
请您参考如下方法:
我认为它看起来更具可读性:
for i in xrange(len(list_1)-1):
l1 = list_1[:]
l2 = list_2[:]
var_list_1_1 = l1.pop(i)
var_list_1_2 = l1
var_list_2_1 = l2.pop(i)
var_list_2_2 = l2
