Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
786 views
in Technique[技术] by (71.8m points)

python - Generate a set of sorted random numbers from a specific range

I'd like to generate a set of x unique random numbers and sort them in Python. For example: range(1000, 10000) x = 100

I've figured out to import random and use the random.randrange method, then loop to get 100 random numbers and in the end sort them.

However, I don't know how to get unique numbers (such that they do not repeat) - should I validate each and every loop? Or is there any other easier way how to do it? And how should I sort them?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Use random.sample

numbers = random.sample(xrange(1000, 10000), 100)  # or `range` in Python 3

The sorting part is easy - use the list.sort method.

numbers.sort()

By default this will sort it from smallest number to largest, but it takes an optional key argument which determines what to sort it on.

There is also a sorted function which doesn't modify a list in-place, but rather returns a sorted list.

numbers_sorted = sorted(numbers)

This also has an optional key argument.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...