मैं कई अन्य अतः सवाल (और google'd टन) है कि कर रहे हैं यह करने के लिए 'similar'-ish को देखा है, लेकिन उनमें से कोई भी मेरे सवाल का सही फिट करने के लिए लग रहे हैं।अजगर अद्वितीय स्ट्रिंग निर्माण
मैं, एक गैर निश्चित लंबाई, अनन्य टेक्स्ट बनाने के लिए कोशिश कर रहा हूँ केवल एक स्ट्रिंग मेरे द्वारा निर्दिष्ट में पात्रों हैं। जैसे पूंजी और लोअर केस ए-जेए-जेड पात्रों से बना है। (इस उदाहरण के लिए मैं केवल एक, b, और c लोअर केस का उपयोग)
def next(index, validCharacters = 'abc'):
return uniqueShortAsPossibleString
सूचकांक तर्क एक सूचकांक (पूर्णांक) कि एक पाठ से संबंधित होगा
कुछ इस (टूटी हुई नीचे कोड) की तरह स्ट्रिंग, उदाहरण के लिए:
next(1) == 'a'
next(2) == 'b'
next(3) == 'c'
next(4) == 'aa'
next(5) == 'ab'
next(6) == 'ac'
next(7) == 'ba'
next(8) == 'bb'
next(9) == 'bc'
next(10) == 'ca'
next(11) == 'cb'
next(12) == 'cc'
और आगे। स्ट्रिंग:
- अद्वितीय होना चाहिए, मैं एक पहचानकर्ता के रूप में उपयोग किया जाएगा, और यह केवल a-zA-जेड वर्ण
- के रूप में संभव के रूप में छोटा है, कम सूचकांक जा रहा है कम से कम के साथ किया जा सकता है (देखें उपरोक्त उदाहरण)
- केवल वर्ण दिए गए तर्क स्ट्रिंग validCharacters
अंत में में निर्दिष्ट होते हैं, कैसे मैं अगले() फ़ंक्शन लिख सकता है निर्दिष्ट पात्रों के साथ एक अद्वितीय कम स्ट्रिंग के लिए एक पूर्णांक सूचकांक मूल्य से संबंधित ?
पीएस मैं एसओ के लिए नया हूं, इस साइट ने मुझे पूरे वर्षों में मदद की है, और जब मैंने कभी खाता नहीं बनाया है या एक सवाल पूछा है (अब तक), मुझे उम्मीद है कि मैंने ठीक काम किया है कि मैं क्या कर रहा हूं इस के साथ पूरा करने की कोशिश कर रहा है।
from itertools import combinations_with_replacement, chain
chars = 'abc'
a = chain(*(combinations_with_replacement(chars, i) for i in range(1, len(chars) + 1)))
मूल रूप से, इस कोड को पुनरावर्तक कि लंबाई 1
, 2
, ..., len(chars)
की chars
के सभी संयोजनों को जोड़ती है बनाता है:
पुनरावृत्त उत्तरों से सावधान रहें। जब वे काम कर सकते हैं, तो आपको राज्य को स्टोर करना होगा यदि आप वापस लौटना चाहते हैं जहां आपने पिछले सभी मानों को दोबारा बिना दोबारा छोड़ा था। मुझे नोब की तरह महसूस करने के लिए – agf