Python Sqlite3-如何在连接外部使用的变量中存储选择值?

Python Sqlite3-如何在连接外部使用的变量中存储选择值?,python,list,for-loop,sqlite,zip,Python,List,For Loop,Sqlite,Zip,我试图使用一个列表将表中的各个值与每个列表项相匹配,并从另外两个表中计算每次出现的次数。我认为我的代码可以更好地解释它: def info_check(): conn = sqlite3.connect('database.db')

我试图使用一个列表将表中的各个值与每个列表项相匹配,并从另外两个表中计算每次出现的次数。我认为我的代码可以更好地解释它:

def info_check():                                                                                                                            
    conn = sqlite3.connect('database.db')                                                                                                    
    c = conn.cursor()                                                                                                                        
    for ind in zip(address, name, number):                                                                                                   
        c.execute('''SELECT * FROM table                                                                                                     
                     WHERE Column4 > Column5                                                                                                 
                       AND Column1 = ?                                                                                                       
                       AND Column2 = ?                                                                                                       
                       AND Column3 = ?''', ind)                                                                                              
        address_found = c.fetchall()                                                                                                         
        if len(address_found) >= 0:                                                                                                          
            for i, j in enumerate(zip(address, name, number)):                                                                               
                if j == ind:                                                                                                                 
                    c.execute('''SELECT * FROM table                                                                                         
                                         WHERE Column4 = Column5                                                                             
                                          AND Column1  = ?                                                                                   
                                          AND Column2 = ?                                                                                    
                                          AND Column3 = ?''', ind)                                                                           
                    name_found = c.fetchall()                                                                                                
                    if len(name_found) >= 0:                                                                                                 
                        for a, b in enumerate(zip(address, name, number)):                                                                   
                            if b == ind:                                                                                                     
                                c.execute('''SELECT * FROM table                                                                             
                                             WHERE Column4 < Column5                                                                         
                                              AND Column1 = ?                                                                                
                                              AND Column2 = ?                                                                                
                                              AND Column3 = ?''', ind)                                                                       
                                number_found = c.fetchall()                                                                                  
                                if len(number_found) >= 2 or len(address_found) >= 2 or len(name_found) >= 2:                                
                                    print(ind)   
                                    print(otherList[i])                                                                                                                      
                                    print(len(address_found), len(name_found), len(number_found))
def info_check():
conn=sqlite3.connect('database.db')
c=连接光标()
对于邮政编码中的ind(地址、名称、编号):
c、 执行(“”“从表中选择*)
其中第4列>第5列
第1列=?
第2列=?
和第3列=?'',ind)
地址\u found=c.fetchall()
如果len(找到的地址)>=0:
对于枚举中的i,j(邮政编码(地址、姓名、号码)):
如果j==ind:
c、 执行(“”“从表中选择*)
其中Column4=Column5
第1列=?
第2列=?
和第3列=?'',ind)
name_found=c.fetchall()
如果len(找到的名称)>=0:
对于枚举中的a、b(zip(地址、名称、编号)):
如果b==ind:
c、 执行(“”“从表中选择*)
其中第4列<第5列
第1列=?
第2列=?
和第3列=?'',ind)
找到的编号=c.fetchall()
如果len(找到的编号)>=2或len(找到的地址)>=2或len(找到的名称)>=2:
打印(ind)
打印(其他列表[i])
打印(len(找到地址)、len(找到姓名)、len(找到号码))
代码运行良好,满足了我的需要,唯一的问题是我得到了一些项目的重复,有时甚至是同一项目的4个结果

我只是在学习python,我正在努力寻找一种从结果中删除重复项的方法。 我在想,如果我可以将每个
Select
值以及它们特定的
ind
I
存储在变量中,我可以在
for
循环之外使用这些变量,那可能会删除重复项?每次都必须为它创建一个新变量吗


非常感谢您的帮助;谢谢

解决了这个问题,我删除了所有不必要的条件,并首先选择了所有的
变量,然后只使用了一个
,如果
包含所有变量:

def info_check():
    conn = sqlite3.connect('database.db')
    c = conn.cursor()

    for i, ind in zip(address, name, number):
        c.execute('''SELECT * FROM table
                     WHERE Column4 > Column5
                     AND Column1 = ?
                     AND Column2 = ?
                     AND Column3 = ?''', ind)
        address_found = c.fetchall()
        c.execute('''SELECT * FROM table
                     WHERE Column4 = Column5
                     AND Column1  = ?
                     AND Column2 = ?
                     AND Column3 = ?''', ind)
        name_found = c.fetchall() 
        c.execute('''SELECT * FROM table
                     WHERE Column4 < Column5
                     AND Column1 = ?
                     AND Column2 = ?
                     AND Column3 = ?''', ind)
        number_found = c.fetchall()
        if len(number_found) >= 2 or len(address_found) >= 2 or len(name_found) >= 2:
             print(ind)   
             print(otherList[i])                            
             print(len(address_found), len(name_found), len(number_found))            
def info_check():
conn=sqlite3.connect('database.db')
c=连接光标()
对于邮政编码中的i、ind(地址、姓名、号码):
c、 执行(“”“从表中选择*)
其中第4列>第5列
第1列=?
第2列=?
和第3列=?'',ind)
地址\u found=c.fetchall()
c、 执行(“”“从表中选择*)
其中Column4=Column5
A.