按最近的时间顺序打印循环的结果

Print the results of the loop in recent time order

如何将两次循环的结果按时间排序?它们是两个不同的循环,但我想通过混合第一个循环和第二个循环来将它们排序在一起,以便及时对所有内容进行排序。基本上这段代码会抓取一些新闻的时间和标题,并将它们打印在文本框中。它们是两个不同的循环。

我写了这段代码,但它不起作用

from datetime import datetime
allnews = news1, news2
allnews.sort()

我没有错误,但是我得到了这个输出,例如:

14.24 TEXAS RANGER #this is loop n.1
14.01 TEXAS RANGER #this is loop n.1
14.20 DETROIT #this is loop n.2
14.13 DETROIT #this is loop n.2

I want to get:
14.24 TEXAS RANGER 
14.20 DETROIT
14.13 DETROIT
14.01 TEXAS RANGER

这是我的代码中对解决问题有用的部分。我没有粘贴整个代码,但我只粘贴了我打印的部分

#textbox
textbox = tk.Listbox(window, width=80, height=20, font=('helvetic', 12), selectbackground="#960000", selectforeground="white", bg="white")
textbox.place(x=1, y=1)

def titoli():

   #code of scraping....

    #TEXAS RANGER
    site_texasrangers = requests.get('....')
    soup = BeautifulSoup(site_texasrangers.content, 'html.parser')
    news = soup.find_all('div', attrs={"class": "tcc-list-news"})

    for each in news:
        for div in each.find_all("div"):
            time= (div.find('span', attrs={'class': 'hh serif'}).text)
            tile=(" ".join([span.text for span in div.select("a > span")]))

            news1 = (f" {time} {'TEXAS RANGER'}, {title}")            
            textbox.insert(tk.END, news1)


    #DETROIT TIGERS
    site_detroit = requests.get('.....')
    soup = BeautifulSoup(site_detroit.content, 'html.parser')
    news = soup.find_all('div', attrs={"class": "tcc-list-news"})

    for each in news:
        for div in each.find_all("div"):
            time= (div.find('span', attrs={'class': 'hh serif'}).text)
            title=(" ".join([span.text for span in div.select("a > span")]))

            news2 = (f" {time} {'DETROIT'}, {title}")       
            textbox.insert(tk.END, news2)


    #sorted
    from datetime import datetime

    allnews = news1, news2
    allnews.sort()


titoli()
window.mainloop()

你做错了顺序。首先你必须创建空列表,接下来在循环中你必须将新闻附加到这个列表(不显示),在循环之后你必须对列表进行排序(使用 reverse=True),然后使用循环将值添加到 textbox

像这样

def titoli():

    # --- before loops ---
    
    allnews = []

    # --- loops ---
    
    #TEXAS RANGER
    site_texasrangers = requests.get('....')
    soup = BeautifulSoup(site_texasrangers.content, 'html.parser')
    news = soup.find_all('div', attrs={"class": "tcc-list-news"})

    for each in news:
        for div in each.find_all("div"):
            time  = div.find('span', attrs={'class': 'hh serif'}).text
            title = " ".join([span.text for span in div.select("a > span")])

            news = f" {time} {'TEXAS RANGER'}, {title})"            

            allnews.append(news)  # <-- append to list without displaying

    #DETROIT TIGERS
    site_detroit = requests.get('.....')
    soup = BeautifulSoup(site_detroit.content, 'html.parser')
    news = soup.find_all('div', attrs={"class": "tcc-list-news"})

    for each in news:
        for div in each.find_all("div"):
            time  = div.find('span', attrs={'class': 'hh serif'}).text
            title = " ".join([span.text for span in div.select("a > span")])

            news = f" {time} {'DETROIT'}, {title})"            

            allnews.append(news)  # <-- append to list without displaying

    # --- after loops --- 

    allnews.sort(reverse=True)

    for news in allnews:
        textbox.insert(tk.END, news)