Tôi đang cố gắng viết một chương trình trong Python 2.7 phải chọn nhiều hơn một biến ngẫu nhiên và in nó ra. Nhưng biến không thể giống như bất kỳ biến được in trước đó.
Tôi đã tìm kiếm xung quanh Google và trang web này, và tôi vẫn chưa tìm thấy bất cứ thứ gì cho các chuỗi [tôi chỉ tìm thấy số nguyên cho đến nay]. Đây là một ví dụ:
sentences = [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p]
print [random.choice[sentences]] + [random.choice[sentences]] + [random.choice[sentences]]
>>> a + b + a
Tôi không muốn có những bản sao, tôi muốn nó như thế này:
>>> a + b + c
Có cách nào có thể đạt được điều này không?
Đã hỏi ngày 17 tháng 6 năm 2015 lúc 16:55Jun 17, 2015 at 16:55
1
Bạn có thể sử dụng
>>> a + b + c
23>>> a + b + c
Trả về một danh sách độ dài
4 của các yếu tố duy nhất được chọn từ chuỗi>>> a + b + c
5. Được sử dụng để lấy mẫu ngẫu nhiên mà không cần thay thế.>>> a + b + c
In [13]: "+".join[random.sample[sentences,3]]
Out[13]: 'a+b+c'
Ferri
17.4K5 Huy hiệu vàng43 Huy hiệu bạc88 Huy hiệu đồng5 gold badges43 silver badges88 bronze badges
Đã trả lời ngày 17 tháng 6 năm 2015 lúc 17:03Jun 17, 2015 at 17:03
AjayajayAjay
5.0692 Huy hiệu vàng21 Huy hiệu bạc 30 Huy hiệu Đồng2 gold badges21 silver badges30 bronze badges
Một giá trị ngẫu nhiên không giống như các giá trị trước đó không phải là ngẫu nhiên.
Có lẽ bạn muốn sử dụng ngẫu nhiên.Shuffle để chỉ sắp xếp lại danh sách các mục của bạn một cách ngẫu nhiên, và sau đó bạn có thể lấy một lần một lần?
Đã trả lời ngày 17 tháng 6 năm 2015 lúc 16:58Jun 17, 2015 at 16:58
Jay Kominekjay KominekJay Kominek
8.6041 Huy hiệu vàng36 Huy hiệu bạc51 Huy hiệu đồng1 gold badge36 silver badges51 bronze badges
1
Có thể là bạn muốn ngẫu nhiên. Mample
>>>mylist = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>print[sum[random.sample[mylist, 3]]]
13
HOẶC
>>>"+".join[random.sample[map[str, mylist],3]] #if string map[str,] can avoid
'6+1+3'
Đã trả lời ngày 17 tháng 6 năm 2015 lúc 17:08Jun 17, 2015 at 17:08
itzmeontvitzmeontvitzMEonTV
19.2k3 Huy hiệu vàng38 Huy hiệu bạc49 Huy hiệu đồng3 gold badges38 silver badges49 bronze badges
import random
def generate_random[my_list, number_of_choices]:
chosen = []
cnt = 0
while cnt < number_of_choices:
choice = random.choice[my_list]
if choice not in chosen:
chosen.append[choice]
cnt +=1
return chosen
Đã trả lời ngày 17 tháng 6 năm 2015 lúc 17:09Jun 17, 2015 at 17:09
3
import random
import string
def sample_n[arr, N]:
return random.sample[arr, N]
sentences = list[string.ascii_lowercase]
print "".join[sample_n[sentences, 3]]
Tôi nghĩ thật tuyệt khi giải thích cách thực hiện chức năng
>>> a + b + c
6 mà không cần sử dụng chức năng API được chỉ định:>>> arr = range[10]
>>> arr
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> out = [arr.pop[random.randint[0,len[arr]]] for i in xrange[3]]
>>> out
[0, 1, 8]
Đã trả lời ngày 17 tháng 6 năm 2015 lúc 17:01Jun 17, 2015 at 17:01
0x900x900x90
38.1K36 Huy hiệu vàng158 Huy hiệu bạc240 Huy hiệu Đồng36 gold badges158 silver badges240 bronze badges
0
Tôi sẽ thích điều này
#!/usr/bin/python
# -*- coding: utf-8 -*-
import random
sentences = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p']
random.shuffle[sentences]
n=3 # amount of items to display
out=''
for item in sentences:
out=out+ item + ' + '
n -=1
if n==0:
break
print out[:-2]
Đầu ra 1
o + p + g
Đầu ra 2
>>> a + b + c
0Đầu ra 3
>>> a + b + c
1Đã trả lời ngày 17 tháng 6 năm 2015 lúc 17:05Jun 17, 2015 at 17:05
Alex Ivanovalex IvanovAlex Ivanov
6854 Huy hiệu bạc6 Huy hiệu đồng4 silver badges6 bronze badges
3