Форум сайта python.su
Доброе время суток. Не могу сообразить, как решить элементарную задачу.
Задание: Дано 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)
Офлайн
Потому что словарь 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
Офлайн
Тема была изменена.
Офлайн
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)
Офлайн
ChernЗачем плодить лишнее?)Jokull
Тема была изменена.
Новую было лень создавать?
Офлайн