我正在使用SQL将数据从表添加到多维数组。
由于同一数据有多个,所以我希望仅在数组中尚未添加的情况下才能添加它,这就是我的代码。实际上,它工作正常,除了我希望附加row [1]和row [2]并在彼此独立的2d数组中一起提供帮助,但是当我尝试执行此操作时,我收到一条错误消息,指出它已退出范围
c.execute("SELECT Subject_name, Unit_Number, Unit_title, Topic_title FROM topics WHERE Subject_name = '%s'"%(str(subjectnames[choosenotes-1])))
x=0
unitnames = []
for row in c.fetchall():
if row[1] in unitnames:
pass
elif row[1] not in unitnames:
unitnames.append(row[1])
unitnames.append(row[2])
else:
print("Error")
x=x+1
此后打印阵列时,我得到['1','Motion,Energy and Matter','2','Electricity and light','3','Oscillations and nuclei','4',当我想要[['1','运动,能量和物质'],['2','电和光'],['3'时,'领域和选项','5','实践检查'] ,“振荡和原子核”],['4','场和选项'],['5','实际检查']]。
答案 0 :(得分:1)
由于您要从表中添加数据,因此我假设您在这里谈论的是二维结构(您未指定它是Python数组还是列表或其他东西)。
如果要测试每一行:
for row in my_array:
if x in row:
# add it.
如果您想知道某个值是否是序列上的 first 元素,则应使用:
for row in my_array:
if x != row[0]: # Check x against row's first item.
row.insert(0, x) # insert x as first item of the row.
以下:
sequence[0] == value
不同于:
value in sequence
最后一个检查value
是否在序列中,无论位置如何。
答案 1 :(得分:0)
您可以使用类似于以下内容的方法简单地遍历数组数组。这将检查条目是否在2d子数组的第一个元素中的任何一个中。如果它不在任何子数组的第一个元素中,那么它将触发逻辑,以便您可以将其添加到数组中。
found = False
searchParameter = 'j'
array = [['x', 'y' , 'z'], ['a', 'b', 'c']]
for subArray in array:
if searchParameter == subArray[0]:
found = True
if(not found):
print("Adding it to the array!..")
#your_append_action_here.