Hello Peter, hello Martin,
many thanks for your very quick response !!!
As for Peter's advice:
> At first I thought you might want itertools.combinations()
>
import string, itertools
for t in itertools.combinations(string.ascii_lowercase, 3):
> ... print t # list(t) if you actually need a list
> ...
> ('a', 'b', 'c')
> ('a', 'b', 'd')
> ('a', 'b', 'e')
> ('a', 'b', 'f')
> ('a', 'b', 'g')
> [snip]
>
> but that gives
>
sum(1 for t in itertools.combinations(string.ascii_lowercase, 3))
> 2600
the 5 lists above do not match my task insofar as every of the 5 lists
contains 'a' and 'b' which should occur only once, hence my count of a maximum
of 301 lists, which might nor be correct 100%.
My be one could put it in Python as follows:
> ('a', 'b', 'c') = True
> ('a', 'b', 'd')= False
> ('a', 'b', 'e')= False
> ('a', 'b', 'f')= False
> ('a', 'b', 'g')= False
I should probably tell you the real task are a series (maximum ~ 301) lists in
which real names of people are assigned to the items/letters for
2 people(golfers) can be in the same list(flight) only once for an extended
period of time.
The next step would be to assign compatible and noncompatible attributes to
the items/letters which will reduce the maximum of possible lists(flights)
As for Martin's advice:
You are using random. Do you want n randomly selected items from the input
list? The random module provides random.sample() to select n items from a
sequence.
If so, try this out at the intercative prompt. Perhaps this is what you are
looking for?
>>> import random
>>> import string
>>> l = list(string.lowercase)
>>> random.sample(l, 7)
['z', 'h', 'e', 'n', 'c', 'f', 'r']
The two modules random and string should provide 7 ore more sets of 3 items not
just one (letter ['z',..'r']) like
['z', 'a', 'b'], ['h','a','c'], ['e','a','d'],
['n','a','f'],.['r','a','g'].
I hope I could make myself clear(er) and used the appropriate format to
communicate.
Thanks again for your help, Marcus
...
-Ursprüngliche Nachricht-
Von: marcus.luet...@bluewin.ch [mailto:marcus.luet...@bluewin.ch]
Gesendet: Freitag, 4. September 2015 15:27
An: marcus.luet...@bluewin.ch
Betreff: Fwd: Creating lists with definite (n) items without repetitions
Ursprüngliche Nachricht
Von : marcus.luet...@bluewin.ch
Datum : 03/09/2015 - 15:32 (UTC)
An : tutor@python.org
Betreff : Creating lists with definite (n) items without repetitions
dear pythonistas
as a newcomber I want to create a set of lists containing n items, for example
n = 3: (['a','b','c'], ['a','d','e']...).
The sequence of items in each list should be different. If the letters
'a''z' are used and n = 3 there is a maximum of 301 lists.
The following code works only for lists containing 1 item:
import random
list = ['a', 'b', 'c', 'd',... 'z']
random.shuffle(list)
for x in list:
print x
how can I solve my task wit n items ?
Thank you for help, Marcus.
---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
___
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor