for z in range(0,countD.shape[0]):
if countD[z,0] in background_low1[:,0]:
background_lowCountD.append(countD[z,:])
else:
background_goodCountD.append(countD[z,:])
我正在使用上面的代码并获得“列表索引必须是整数,而不是元组”错误消息。我有两个不均匀的数组(CountD和background_low1),如果在任何行级别的两个数组的第0列中都存在一个值,我想将该行移动到一个新数组,如果它只存在于1中,我希望该行移动到第二个新阵列。
答案 0 :(得分:0)
您收到此错误消息,因为列表是一维的(理论上)。但由于列表可以包含另一个列表,因此您可以创建一个多维列表。现在,使用括号之间的索引(必须是整数)来访问列表的元素。处理多维列表时,只需一个接一个地使用多个括号:
>>> a = ['a','b','c']
>>> b = [1,2,a]
>>> print b[2]
>>> ['a','b','c']
>>> print b[2][0]
>>> 'a'
所以,回答你的问题,尝试这样的事情:
list1 = [[1,2,3,4],
[5,6,7,8],
[9,10,11,12]]
list2 = [[1,4,5,6],
[7,6,7,8],
[9,1,2,3]]
newList = []
otherList = []
#you need to make sure both lists are the same size
if len(list1) == len(list2):
for i in range(len(list1)):
if list1[i][0] == list2[i][0]:
newList.append(list1[i])
else:
otherList.append(list1[i])
#the lists should now look like this
>>> print newList
>>> [[1,2,3,4],[9,10,11,12]]
>>> print otherList
>>> [[5,6,7,8]]