如何打乱我在 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
}