Создание несортированного списка в диапазоне от 100 000 до 1000 000 - PullRequest
1 голос
/ 22 января 2020

"Я ищу создание функции, которая бы возвращала несортированный список из 20 чисел в диапазоне от 100 до 1000 (в тысячах) и не должна быть уникальной. Кроме того, я ищу, чтобы они были кратны 25. В следующем шаг, я ищу, чтобы отсортировать их от наименьшего к наибольшему. Я ищу помощь о том, как вставить ограничения максимум 20 случайных несортированных чисел, делимых на 25 "

def bookinventory(i,j):
    import random
    booknumber = [x for x in range(i,j)]
    random.shuffle(booknumber)
    print(booknumber)

def main():
    books = bookinventory(100000,1000000)
    print(books)


if __name__ == '__main__':
    main()

Ответы [ 3 ]

1 голос
/ 22 января 2020

Это создаст несортированный список из 20 неуникальных целых чисел в диапазоне от 100 000 до 1 000 000, которые делятся на 25.

b = [x * 25 for x in random.choices(range(4000, 40000), k = 20)]

Вы можете изменить свой код следующим образом:

def bookinventory(i,j):
    import random
    booknumber = [x * 25 for x in random.choices(range(int(i/25), int(j/25)), k = 20)]
    print(booknumber)
    return booknumber

def main():
    books = bookinventory(100000,1000000)
    sorted_books = sorted(books)
    print(sorted_books)


if __name__ == '__main__':
    main()
1 голос
/ 22 января 2020

Чтобы ограничить до 20 элементов, вы можете сделать:

booknumber = [random.randint(i, j) for _ in range(20)]

Чтобы взять только 20 элементов, делимых на 25, вы можете использовать choices:

booknumber = random.choices([x for x in range(i, j+1) if x % 25 == 0], k=20)

Это для общего случая, когда i и j не известны. Если вы знаете числа, как в вашем примере, вы можете использовать арифметику, чтобы упростить задачу:

booknumber = [random.randint(4000, 40000) * 25 for _ in range(20)]
1 голос
/ 22 января 2020

Это создаст 20 уникальных чисел от 100 000 до 1 000 000, делимых на 25:

def bookinventory(i, j):
    import random
    booknumbers = list(range(i, j + 1, 25))
    return sorted([random.choice(booknumbers) for _ in range(20)])

def main():
    books = bookinventory(100000, 1000000)
    sorted_books = sorted(books)
    print(sorted_books)


if __name__ == '__main__':
    main()

Основным компонентом этого является:

sorted([random.choice(booknumbers) for _ in range(20)])
...