New submission from Rowan Sylvester-Bradley <ro...@sylvesterbradley.org>:

This issue is probably related to issue ??? but I have created it as a separate 
issue. When shuffle doesn't crash it sometimes (or maybe always - I haven't 
fully analysed this yet) looses most of the elements in the list that it is 
supposed to be shuffling. Here is an extract of the code that I'm using:

import io
from io import StringIO 
from lxml import etree 
import random  

filename_xml = 'MockExam5.xml'
with io.open(filename_xml, mode="r", encoding="utf-8") as xml_file:
    xml_to_check = xml_file.read()
doc = etree.parse(StringIO(xml_to_check))
exams = doc.getroot()
questions_element = exams.find("questions")
logmsg(L_TRACE, "There are now " + 
str(len(questions_element.findall("question"))) + " questions")
logmsg(L_TRACE, "Randomising order of questions in this exam")
random.shuffle(questions_element)
logmsg(L_TRACE, "Finished randomise")
logmsg(L_TRACE, "There are now " + 
str(len(questions_element.findall("question"))) + " questions")

And here is the log produced by this code:

21-03-24 18:10:11.989 line:  2057 file: D:\XPS_8700 Extended 
Files\Users\RowanB\Documents\My_Scripts NEW\mockexam\put_exam.py 2 There are 
now 79 questions
21-03-24 18:10:11.991 line:  2065 file: D:\XPS_8700 Extended 
Files\Users\RowanB\Documents\My_Scripts NEW\mockexam\put_exam.py 2 Randomising 
order of questions in this exam
21-03-24 18:10:11.992 line:  2067 file: D:\XPS_8700 Extended 
Files\Users\RowanB\Documents\My_Scripts NEW\mockexam\put_exam.py 2 Finished 
randomise
21-03-24 18:10:11.993 line:  2068 file: D:\XPS_8700 Extended 
Files\Users\RowanB\Documents\My_Scripts NEW\mockexam\put_exam.py 2 There are 
now 6 questions

How come the shuffle starts off with 79 elements, and finishes with 6?

Thanks - Rowan

----------
messages: 389482
nosy: rowan.bradley
priority: normal
severity: normal
status: open
title: random.shuffle loses most of the elements
type: behavior
versions: Python 3.9

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue43618>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to