Найти - Пользователи
Полная версия: Проблема с задачей
Начало » Центр помощи » Проблема с задачей
1
Jokull
Доброе время суток. Не могу сообразить, как решить элементарную задачу.
Задание: Дано 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
       
Как можно решить задачу по другому?
sp3
Потому что словарь 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
Тема была изменена.
Chern
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)
Jokull
Chern
Jokull
Тема была изменена.

Новую было лень создавать?
Зачем плодить лишнее?)
Спасибо)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB