Форум сайта python.su
0
Доброе время суток. Не могу сообразить, как решить элементарную задачу.
Задание: Дано n различных натуральных чисел. Напечатать все перестановки этих чисел.
Что сделал я:
# -*- coding: cp1251 -*- import random n=input('Введите количество чисел: ') mas0=[] mas1=[] sch=0 for i in range(n): mas0.append(input('Введите число: ')) c=0 while c==0: sch=0 random.shuffle(mas0) for element in mas1: if mas0==element: sch+=1 if sch!=1: mas1.append(mas0) print mas0 if len(mas1)==n**n: break
Отредактировано Jokull (Май 11, 2012 16:34:32)
Офлайн
18
Потому что словарь db один и тот же для всех записей, вы не создаете новый.
# -*- coding: cp1251 -*- i=0 n=input('Введите количество детей: ') c={}#Словарь словаря while i<n: db={}#Словарь !!!!!!!! db['name']=raw_input('Введите Фамилию: ') #Заполнение первого словаря по ключам db['month']=raw_input('Укажите месяц рождения: ') db['group']=raw_input('Укажите группу: ') db['age']=raw_input('Укажите возраст: ') c[i]=db #Запись словаря во второй словарь, у которого ключом является счётчик i i+=1 print c
Офлайн
0
Тема была изменена.
Офлайн
3
Jokull
Тема была изменена.
>>> import itertools >>> for case in itertools.permutations([1, 2, 3]): ... print case ... (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 1, 2) (3, 2, 1)
Офлайн
0
ChernЗачем плодить лишнее?)Jokull
Тема была изменена.
Новую было лень создавать?
Офлайн