2017-04-07 11 views
7

साथ एक यादृच्छिक नमूना प्राप्त करें मैं इस सूची है:प्रतिस्थापन

colors = ["R", "G", "B", "Y"] 

और मैं इसे से 4 अनियमित अक्षर प्राप्त करना चाहते हैं, लेकिन पुनरावृत्ति भी शामिल है।

चल रहा है यह केवल मुझे 4 अद्वितीय पत्र दे देंगे, लेकिन कभी किसी भी दोहरा पत्र:

print(random.sample(colors,4)) 

मैं कैसे पत्र संभव दोहरा के साथ, 4 रंग की एक सूची मिलता है?

उत्तर

9

random.choice के साथ:

print([random.choice(colors) for _ in colors]) 

मानों की संख्या की जरूरत सूची में मानों की संख्या के अनुरूप नहीं है, तो range का उपयोग करते हैं:

print([random.choice(colors) for _ in range(7)]) 

पायथन 3.6 onwa से आरडीएस आप random.choices (बहुवचन) का भी उपयोग कर सकते हैं और के तर्क के रूप में आपको आवश्यक मानों की संख्या निर्दिष्ट कर सकते हैं।

0

यह कोड आपको आवश्यक परिणाम देगा। मैंने आपको और अन्य उपयोगकर्ताओं की प्रक्रिया का पालन करने में सहायता के लिए प्रत्येक पंक्ति में टिप्पणियां जोड़ दी हैं। कृपया निसंकोच होकर कोई भी प्रश्न पूछें।

import random 

colours = ["R", "G", "B", "Y"] # The list of colours to choose from 
output_Colours = []    # A empty list to append results to 
Number_Of_Letters = 4   # Allows the code to easily be updated 

for i in range(Number_Of_Letters): # A loop to repeat the generation of colour 
    output_Colours.append(random.sample(colours,1)) # append and generate a colour from the list 

print (output_Colours) 
6

अजगर 3.6 में, नए random.choices() समारोह सीधे समस्या का समाधान होगा:

>>> from random import choices 
>>> colors = ["R", "G", "B", "Y"] 
>>> choices(colors, k=4) 
['G', 'R', 'G', 'Y'] 
संबंधित मुद्दे