2010-04-19 17 views
32

मैं एक फ़ंक्शन या लघु प्रोग्राम ढूंढ रहा हूं जो एक स्ट्रिंग (10 अक्षरों तक) प्राप्त करता है और इसे शफल करता है।
धन्यवाद एरियलपायथन में शफल स्ट्रिंग

उत्तर

42

यादृच्छिक मॉड्यूल में shuffle फ़ंक्शन है। ध्यान दें कि यह जगह में घूमता है ताकि आपको अपनी स्ट्रिंग को वर्णों की सूची में परिवर्तित करना होगा, इसे घुमाएं, फिर परिणाम में शामिल हों।

import random 
l = list(s) 
random.shuffle(l) 
result = ''.join(l) 
+0

+1। इस प्रकार 'प्रिंट random.shuffle ([' a ',' b ',' c '])' 'कोई नहीं 'वापस लौटाएगा। हमें 'एल = ['ए', 'बी', 'सी'] 'फिर' random.shuffle (एल)' और 'प्रिंट एल' का उपयोग करना होगा। – Basj

66
>>> import random 
>>> s="abcdef123" 
>>> ''.join(random.sample(s,len(s))) 
'1f2bde3ac' 
-2

एक स्ट्रिंग फेरबदल के लिए एक वैकल्पिक ले:

# Python < 3 
import random, array 

def shuffle_text(text): 
    if isinstance(text, unicode): 
     temp= array.array('u', text) 
     converter= temp.tounicode 
    else: 
     temp= array.array('c', text) 
     converter= temp.tostring 
    random.shuffle(temp) 
    return converter() 

मैं सिर्फ पूर्णता के लिए 'खातिर इस उत्तर जोड़ा गया; मेरे धीमी होम सर्वर पर, यह छोटे इनपुट तारों के लिए तेज़ है (लेकिन अंतर बहुत छोटा है), जबकि यह बड़े तारों के लिए धीमा है। "इन-प्लेस" के लिए

संबंधित मुद्दे