(65,90)と(97,122)の範囲の乱数を取得したいと思います。私は2つの範囲の間のランダムな整数を生成する
import random
random.randint(65,95)
を使用して範囲内の乱数を選択することができますが、私はどのように行うことができるように整数のみを取る'randint`?事前
(65,90)と(97,122)の範囲の乱数を取得したいと思います。私は2つの範囲の間のランダムな整数を生成する
import random
random.randint(65,95)
を使用して範囲内の乱数を選択することができますが、私はどのように行うことができるように整数のみを取る'randint`?事前
def random_of_ranges(*ranges):
all_ranges = sum(ranges, [])
return random.choice(all_ranges)
print(random_of_ranges(range(65, 90), range(97, 122)))
これは、これを扱うのは非常に一般的な方法です。任意の数の範囲(またはそれらのサブセット)を渡すことができます。しかし、特に大きなセット(例えばrange(1, 100000000)
のようなもの)の方がかなり高価です。あなたのユースケース(そして近くのいくつかの他の人たち)にとってはそれでも十分でしょう。
なぜここで 'all_ranges'をビルドしますか? 'random.choice(random.choice(ranges))'は毎回リストを再構築せずに同じことをします。 –
すべての範囲が等しいサイズの場合(同じQの場合)は同じです。一般的な場合、これは真実である必要はなく、 'choice([range(1,100)、range(200、202)]))'はeよりも200と201の方針を返すでしょう。 g。もちろん、リストを一度作成してからこの入力ですべての呼び出しで使用すると、最適な最適化になります。 – Alfe
良い点 - よく作られた:) –
内の任意のアイデア
おかげで、独自のを作りますか?また
import random
def my_rand():
numbers = list()
numbers.append(random.randint(65,95))
numbers.append(random.randint(97,122))
return numbers[random.randint(0,1)]
:
def random():
arr1 = np.random.randint(65,90)
arr2 = np.random.randint(97,122)
out = np.stack((arr1,arr2))
out = np.random.choice(out)
return out
2つの範囲を生成した後、 'random.choice([最初の範囲の範囲と2番目の範囲の範囲]) ' – depperm
' i = randint(65、115);もしi> 90ならばi = 7、それ以外は0' – Alfe
本当に 'random.choice(string.ascii_letters)'の後ろにいないのですか? –