Hướng dẫn python random string not repeat - chuỗi ngẫu nhiên python không lặp lại

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ướng dẫn python random string not repeat - chuỗi ngẫu nhiên python không lặp lại

Đã hỏi ngày 17 tháng 6 năm 2015 lúc 16:55Jun 17, 2015 at 16:55

Hướng dẫn python random string not repeat - chuỗi ngẫu nhiên python không lặp lại

1

Bạn có thể sử dụng

>>> a + b + c
2

>>> a + b + c
3

Trả về một danh sách độ dài

>>> a + b + c
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ế.

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

Hướng dẫn python random string not repeat - chuỗi ngẫu nhiên python không lặp lại

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

Hướng dẫn python random string not repeat - chuỗi ngẫu nhiên python không lặp lại

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

Hướng dẫn python random string not repeat - chuỗi ngẫu nhiên python không lặp lại

Alex Ivanovalex IvanovAlex Ivanov

6854 Huy hiệu bạc6 Huy hiệu đồng4 silver badges6 bronze badges

3

Làm thế nào để bạn tạo ra một chuỗi ngẫu nhiên trong Python mà không cần lặp lại?

# Tạo một chương trình để tạo một chuỗi có hoặc không lặp lại các ký tự ..
Nhập ngẫu nhiên ..
Nhập chuỗi ..
in ("Sử dụng phương thức ngẫu nhiên.choice ()").
def cụ thể_string (chiều dài):.
Letters = String.ascii_LowerCase # Xác định chuỗi chữ thường ..
# Xác định điều kiện cho phương thức ngẫu nhiên.choice () ..

Làm cách nào để ngăn các số ngẫu nhiên lặp lại trong Python?

Sử dụng hàm () hàm. Hàm này đưa ra một danh sách các yếu tố không lặp lại giữa một loạt các yếu tố.. This function gives a list of non-repeating elements between a range of elements.

Làm thế nào để bạn tạo ra các chuỗi độc đáo trong Python?

Để tạo các chuỗi ngẫu nhiên trong Python, chúng tôi sử dụng chuỗi và mô -đun ngẫu nhiên.Mô-đun chuỗi chứa các hằng số chuỗi ASCII trong các trường hợp văn bản, chữ số, v.v ... Mặt khác, mô-đun ngẫu nhiên được sử dụng để tạo các giá trị giả ngẫu nhiên.use the string and random modules. The string module contains Ascii string constants in various text cases, digits, etc. The random module on the other hand is used to generate pseudo-random values.

Chúng ta có thể tạo chuỗi ngẫu nhiên trong Python không?

Chúng ta có thể tạo các chuỗi và mật khẩu ngẫu nhiên trong Python bằng Secrets.Choice ().Đối với các số ngẫu nhiên an toàn hơn về mặt mật mã, hàm này của mô -đun bí mật có thể được sử dụng làm thuật toán nội bộ của nó được đóng khung theo cách tạo ra các số ngẫu nhiên ít dự đoán hơn. choice(). For Cryptographically more secure random numbers, this function of the secret module can be used as its internal algorithm is framed in a way to generate less predictable random numbers.