从数据库中存储一个值add check if a element get added end of lis

2024-04-26 05:10:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经连接到一个数据库,并获得值,这是绝对的罚款。 但是我´我要做的是在一个值添加到列表末尾时执行一个函数

我真正想要的,是比较

len(oldlist)len(newlist)

if len(newlist > oldlist):
   Message.send(m)

我´我甚至尝试过使用append:

if newlist.append(ValueFromDB):
  pass
(can a if statment like this work?)

但是每件事都会导致相同的问题,我从DB中得到相同的len值,所以应该检查一个新值是否添加到列表的末尾,以及是否添加了

Message.send(m)

我需要一些想法来实现这个目标,有没有什么好办法?我知道这个问题有点混乱,但我´m位困惑=)


Tags: 函数send数据库message列表lenifpass
2条回答

我认为你有这个问题是因为,oldlistnewlist 是一样的object,看看这个:

newlist = [1, 2, 3]
oldlist = newlist

newlist.append(4)
print(oldlist)  # [1, 2, 3, 4]
print(id(newlist) == id(oldlist))  # True
print(len(newList) == len(oldList))  # True

因此,当您跟踪oldlist时,请使用原始列表的副本:

newlist = [1, 2, 3]
oldlist = newlist[:]  # create a copy

newlist.append(4)
print(oldlist)  # [1, 2, 3]
print(id(newlist) == id(oldlist))  # False
print(len(newList) == len(oldList)) # False

我不确定您是如何访问数据库的,也不确定您是如何将数据添加到列表中的,但类似的操作应该是可行的

基本上,您在一个单独的变量中跟踪列表的长度,然后每次向列表中添加一些内容时,您都会检查len(list)是否比该变量增加了

_list = []
_list_len = 0
while True:
    value = input("Input value of just press enter to skip...")
    if len(value) > 0: 
        _list.append(value)

    if len(_list) > _list_len:
        print("Sending message...")
        _list_len = len(_list)

输出:

Input value of just press enter to skip...1
Sending message...
Input value of just press enter to skip...2
Sending message...
Input value of just press enter to skip...
Input value of just press enter to skip...
Input value of just press enter to skip...3
Sending message...
Input value of just press enter to skip...

相关问题 更多 >