मुझे निम्न समस्या है। पूर्णांक की एक सूची होने के बाद, मैं इसे सूचियों की सूची में विभाजित करना चाहता हूं, जब भी मूल इनपुट सूची के दो तत्वों के बीच का चरण 1. उदाहरण के लिए: इनपुट = [0, 1, 3, 5, 6, 7], आउटपुट = [[0, 1], [3], [5, 6, 7]]पायथन: उनके बीच चरण पर आधारित पूर्णांक की विभाजित सूची
मैंने निम्नलिखित कार्य लिखा, लेकिन यह नरक के रूप में बदसूरत है, और मैं सोच रहा था कि आप में से कोई भी व्यक्ति मुझे एक अच्छा समाधान पाने में मदद करें। मैंने itertools का उपयोग करने की कोशिश की, लेकिन इसे हल नहीं कर सका।
def _get_parts(list_of_indices):
lv = list_of_indices
tuples = zip(lv[:-1], lv[1:])
split_values = []
for i in tuples:
if i[1] - i[0] != 1:
split_values.append(i[1])
string = '/'.join([str(i) for i in lv])
substrings = []
for i in split_values:
part = string.split(str(i))
substrings.append(part[0])
string = string.lstrip(part[0])
substrings.append(string)
result = []
for i in substrings:
i = i.rstrip('/')
result.append([int(n) for n in i.split('/')])
return result
धन्यवाद एक बहुत:
यहाँ मेरी समाधान है!
अच्छा समाधान। मुझे लगता है कि विवरण उपयोगी होगा: 'j = count()' एक काउंटर बनाता है। 'अगली (जे)' के लिए प्रत्येक कॉल 1 से 0-स्पष्ट पायथन व्यवहार नहीं करेगा: फ़ंक्शन तर्क के लिए फ़ंक्शन तर्क के लिए डिफ़ॉल्ट मान एक बार बनाया गया है। इसलिए, 'j' को केवल एक बार गिनती() के साथ प्रारंभ किया जाएगा, अगली कॉल पर 'कुंजी' पर, arg' j' का पहले उदाहरण बनाया जाएगा। 'groupby'' inp' से सभी आइटमों को पुन: लागू करने के लिए जोड़ देगा, जिनके पास समान कुंजी मान है। यदि महत्वपूर्ण मूल्य बदल गया है - नया जी बनाया गया है। Inp से आइटम के लिए: आइटम = 0, कुंजी = 0-0 = 0; आइटम = 1, कुंजी = 1-1 = 0; आइटम = 3, कुंजी = 3-2 = 1; आइटम = 5, कुंजी = 5-3 = 2 और इसी तरह। – stalk