比较sqlite和列表之间的输出

时间:2018-08-26 18:35:12

标签: python-3.x for-loop sqlite tuples

问题是当我想比较sqlite和列表中的列表

date_in=("25/08/2018")
date_modified=datetime.strptime(date_in, "%d/%m/%Y")
date=date_modified.date()

consulta.execute("SELECT hora FROM citas WHERE fecha=(?)",(date,))

schedule_appointments1 = consulta.fetchall()

schedule_appointments=list(schedule_appointments1)

schedule=["10:00","10:30","11:00","11:30","12:00","12:30"]

for x in schedule_appointments:
    for y in schedule:
        if x==y:
            print("ok")
            schedule.remove(x)

我跑步时什么也没发生,所以“ x”不等于“ y” 如果我打印一个再见

for x in schedule_appointments:
    for y in schedule:
        print("x= ", x, type(x))
        print("y= ",y, type(y))
        if x==y:
            print("ok")

如果的结果

x=  ('12:00',) class 'tuple'
y=  11:00 class 'str'
x=  ('11:00',) class 'tuple'
y=  11:00 class 'str'

我看到一个是元组,另一个是str,但

schedule_appointments=list(schedule_appointments1)是一个列表,而schedule=["11:00"]是一个列表,所以我不明白,

我需要那件事

if x==y:
    print("ok")

在简历中,我想要一个列表,删除数据库给我的东西

和其他请愿书,我为什么可以这样做?我该怎么办?

2 个答案:

答案 0 :(得分:0)

您需要在运行循环之前进行其他列表理解:

schedule_appointments = [schedule_appointments中项目的项目[0]]

因为您从sqlite3中获得了一个元组列表(每个元组都有一个元素)。如您同时记录x和y所示。您没有单个元素的列表。

答案 1 :(得分:0)

我个人不使用numpy应用程序,但是我的建议是使用纯python的工作方式。因此,它应该与任何外部python包一样与numpy一起使用。 换句话说:列表理解并不依赖于特定的程序包。