如何按時間順序對兩個回圈的結果進行排序?它們是兩個不同的回圈,但我想通過混合第一個回圈和第二個回圈來將它們排序在一起,以便及時對所有內容進行排序。基本上,這段代碼會抓取一些新聞的時間和標題,并將它們列印在文本框中。它們是兩個不同的回圈。
我寫了這段代碼,但它不起作用
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()
uj5u.com熱心網友回復:
你做錯了順序。首先,您必須創建空串列,接下來在回圈中您必須將新聞附加到此串列(不顯示),在回圈之后您必須對串列進行排序(使用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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/448533.html
標籤:Python python-3.x 日期 排序
上一篇:在Pandas中按周分組資料
