Demo 2023-12-20: while; random

Demo 2023-12-20: while; random#

Dieses Notebook:

printe zahlen von 2 bis 4

n = 2
while n < 5:
    print(n)
    n += 1
2
3
4

gegeben: eine Liste von Zahlen, z.B.

l = [ 3, 1, 5, 2, -1, -3]

gesucht: zwei Listen … von denen die l1 kleiner ist als l2

Lösung: Wähle zufällig ein beliebiges Element aus der Liste l aus, z.B. die 1.

import random as rd
position = rd.randint( 0, len(l)-1 )
pivot_element = l[position]
f"{position=}: {pivot_element=}"
'position=3: pivot_element=2'
l1 = []
l2 = []

for element in l:
    print(f"{element=}, {element < pivot_element}")
    if element < pivot_element:
        l1.append(element)
    else:
        l2.append(element)
element=3, False
element=1, True
element=5, False
element=2, False
element=-1, True
element=-3, True
l1, l2
([1, -1, -3], [3, 5, 2])
([-3], [1, -1], [2], [3, 5])
([-3], [1, -1], [2], [3, 5])
([-3], [-1], [1], [2], [3], [5])
([-3], [-1], [1], [2], [3], [5])