Найти - Пользователи
Полная версия: random.shuffle работает выборочно
Начало » Python для новичков » random.shuffle работает выборочно
1
Lork
Приветствую всех!
Решил сделать себе для учебных целей генератор случайных списков. Ввод размера списка, а так же пропорции кол-ва литер и цифирей привинчу потом. Сейчас возник вопрос: почему не генерируется список c1? Заранее благодарю.

P.S. Обработка списка arr - это просто мой контроль работы модуля random.shuffle.
=========================================================
 #Генератор случ. списков
import random
a='abcdefghijklmnopqrstuvwxyz'
b=[-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9]
c=random.sample(a,16)+random.sample(b,9)
print('c= ',c)
c1=random.shuffle(c)
print('c1= ',c1)
#-------------------------------------------------------
arr = [-2,-1,0,1,2,3,4,5,6,7,8,9,10,'x','y','z']
random.shuffle(arr)
print('arr=',arr)
================================
Вывод результата:
 c=  ['c', 'l', 'd', 'n', 't', 's', 'f', 'm', 'v', 'j', 'p', 'r', 'x', 'a', 'q', 'i', 0, 7, -3, -7, -9, -2, -5, 6, -8]
c1=  None
arr= ['y', 3, 4, 10, 1, 'x', 9, 0, 5, 2, -1, 6, 8, 7, 'z', -2]
>>>
wi34rd
shuffle - процедурный метод, а не функциональный, т. е. он перемешивает c, а не возвращает перемешанный список.
Lork
wi34rd
shuffle - процедурный метод, а не функциональный, т. е. он перемешивает c, а не возвращает перемешанный список.
Спасибо, разобрался!
4kpt_V
wi34rd
shuffle - процедурный метод, а не функциональный, т. е. он перемешивает c, а не возвращает перемешанный список.

Вынужден не согласиться. Процедурных методов в python все же нет
FishHook
Что такое процедурный метод?
wi34rd
FishHook
Что такое процедурный метод?
Метод, в котором нет инструкции return, или которая ничего не возвращает. Считайте я ввел новое определение
4kpt_V
В паскале и иже с ними были процедуры и функции. Это были разные понятия и их нужно по разному определять. В python нет процедуры, потому как функция в любом случае возвращает None даже если нет явного return.
wi34rd
В Python'е все очень условно, метод - не метод, класс - не класс и т. д. В C тоже формально нет процедур, но те, что типа void некоторые называют процедурами, чтобы как-то обозначить их, так сказать отделить мух от котлет. Но раз это вызывает такую реакцию буду делать это про себя, а писать буду длинные определения…
4kpt_V
wi34rd
В Python'е все очень условно, метод - не метод, класс - не класс и т. д.
Поподробнее…
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