如何打乱我在 python Django 应用程序中合并的两个对象列表
How can I shuffle two object lists that I merged in my python Django app
我正在尝试合并到对象列表,然后重新排列它们,但它不起作用。如果我使用
random.shuffle(list_1)
它会打乱那个列表,但如果我这样做
first = list_1()
second = list_2()
merged = first + second
ran = random.shuffle(merged)
context = {
"ran": ran
}
没有输出,没有回溯,也没有错误信息。这是不可能的吗?这些是我的功能
import random
def get_vlad_tv():
url = 'http://www.examplesite.org/'
html = requests.get(url, headers=headers)
soup = BeautifulSoup(html.text, "html5lib")
divs = soup.find_all('div', {'class': 'entry-pos-1'})
entries = [{'text': div.find('p', 'entry-title').text,
'href': url + div.a.get('href'),
'src': url + div.a.img.get('data-original'),
} for div in divs][:10]
divs_two = soup.find_all('div', {'class': 'entry-pos-2'})
entries_two = [{'text': div.find('p', 'entry-title').text,
'href': url + div.a.get('href'),
'src': url + div.a.img.get('data-original'),
} for div in divs_two][:10]
merged = entries + entries_two
return merged
def scrape_world():
url = 'http://www.otherexamplesite.net'
html = requests.get(url, headers=headers)
soup = BeautifulSoup(html.text, 'html5lib')
titles = soup.find_all('section', 'box')
cleaned_titles = [title for title in titles if title.a.get('href') != 'vsubmit.php']
entries = [{'href': url + box.a.get('href'),
'src': box.img.get('src'),
'text': box.strong.a.text,
} for box in cleaned_titles]
return entries
如果这不可能,我会想出别的办法,如果可能的话,请指出正确的方向,告诉我如何更正我的代码。
random.shuffle 就地打乱列表,而不是 return 打乱的列表。
你可以做到
random.shuffle(merged)
列表'merged'会被打乱,可以直接使用
random.shuffle()
没有 return 值。查看文档 here
你可以做的是使用直接洗牌的列表:
first = list_1()
second = list_2()
merged = first + second
random.shuffle(merged)
context = {
"ran": merged
}
我正在尝试合并到对象列表,然后重新排列它们,但它不起作用。如果我使用
random.shuffle(list_1)
它会打乱那个列表,但如果我这样做
first = list_1()
second = list_2()
merged = first + second
ran = random.shuffle(merged)
context = {
"ran": ran
}
没有输出,没有回溯,也没有错误信息。这是不可能的吗?这些是我的功能
import random
def get_vlad_tv():
url = 'http://www.examplesite.org/'
html = requests.get(url, headers=headers)
soup = BeautifulSoup(html.text, "html5lib")
divs = soup.find_all('div', {'class': 'entry-pos-1'})
entries = [{'text': div.find('p', 'entry-title').text,
'href': url + div.a.get('href'),
'src': url + div.a.img.get('data-original'),
} for div in divs][:10]
divs_two = soup.find_all('div', {'class': 'entry-pos-2'})
entries_two = [{'text': div.find('p', 'entry-title').text,
'href': url + div.a.get('href'),
'src': url + div.a.img.get('data-original'),
} for div in divs_two][:10]
merged = entries + entries_two
return merged
def scrape_world():
url = 'http://www.otherexamplesite.net'
html = requests.get(url, headers=headers)
soup = BeautifulSoup(html.text, 'html5lib')
titles = soup.find_all('section', 'box')
cleaned_titles = [title for title in titles if title.a.get('href') != 'vsubmit.php']
entries = [{'href': url + box.a.get('href'),
'src': box.img.get('src'),
'text': box.strong.a.text,
} for box in cleaned_titles]
return entries
如果这不可能,我会想出别的办法,如果可能的话,请指出正确的方向,告诉我如何更正我的代码。
random.shuffle 就地打乱列表,而不是 return 打乱的列表。
你可以做到
random.shuffle(merged)
列表'merged'会被打乱,可以直接使用
random.shuffle()
没有 return 值。查看文档 here
你可以做的是使用直接洗牌的列表:
first = list_1()
second = list_2()
merged = first + second
random.shuffle(merged)
context = {
"ran": merged
}