पर Iterating पूर्णांकों की एक सूची में शामिल होने और वस्तुओं की एक शर्त के आधार पर

0

सवाल

मैं कोशिश कर रहा हूँ पर पुनरावृति करने के लिए पूर्णांकों की एक सूची है और उन्हें शामिल होने के लिए एक शर्त के आधार पर का उपयोग कर अजगर मानक पुस्तकालय है । उदाहरण के लिए, मैं पूर्णांकों की एक सूची है कि लग रहा है के रूप में इस तरह:

listOfIntegers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]

मैं पुनरावृति करने के लिए इस सूची के माध्यम से और गठबंधन मूल्यों है कि इस तरह के परिणाम के लिए किया जाएगा एक स्ट्रिंग के रूप:

result = '000-20-4-60-8000-1-9'

(जहां डैश शामिल हैं) । हालत यह है कि अगर पूर्ववर्ती संख्या बराबर नहीं है, शून्य करने के लिए एक पानी का छींटा में रखा जाना चाहिए इसे के सामने. अगर अगले मूल्य शून्य के बराबर है, यह हो जाता है के अंत करने के लिए मूल्य ।

integer iteration list python
2021-11-23 03:49:53
4

सबसे अच्छा जवाब

2

इस में मदद मिलेगी: (विचार कर रहे हैं संख्या में सकारात्मक दी गई सूची)

def join(lst):
    return "".join(list(map(lambda x: str(-x), lst))).lstrip('-')

listOfIntegers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]
print(join(listOfIntegers)) # 000-20-4-60-8000-1-9

प्रक्रिया:

  1. कन्वर्ट करने के लिए प्रत्येक तत्व नकारात्मक है, जो में:
    • 9 हो जाता है -9
    • 0 कोई प्रभाव नहीं है के रूप में -0 है 0 अजगर में
  2. फिर उन्हें बदलने में तार और उन्हें शामिल हो
  3. सुनिश्चित करें कि को दूर करने के लिए अनुगामी hyphenहमारे मामले में , lstrip('-') हमें मदद करता है के साथ है कि.
2021-11-23 04:48:25

कृपया ध्यान दें कि आप क्या किया था और क्यों यह काम किया. इस बनाता है यह बेहतर है, जो दूसरों के लिए भर में आ सकता है इस पृष्ठ के बाद.
krmogi

अपने जवाब में सुधार किया जा सकता के साथ अतिरिक्त समर्थन जानकारी. कृपया संपादित जोड़ने के लिए आगे की जानकारी, इस तरह के रूप में प्रशंसा पत्र या दस्तावेज है, तो है कि दूसरों की पुष्टि कर सकते हैं कि आपका जवाब सही है. आप अधिक जानकारी पा सकते हैं पर कितना अच्छा लिखने के लिए जवाब में मदद केंद्र.
Community
1

एक सीधा दृष्टिकोण के साथ, इमारत से एक स्ट्रिंग सूची के integers के द्वारा पीछा किया, एक सरल regex प्रतिस्थापन:

listOfIntegers = [1, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]
inp = ''.join([str(x) for x in listOfIntegers])
result = re.sub(r'(?<=.)(?=[^\D0])', '-', inp)
print(result)  # 100-20-4-60-8000-1-9
2021-11-23 04:07:00

संयोजन है कि मैं क्या पाया है, दूसरों के लिए किया था करने के क्रम में समस्याओं को हल करने के लिए समान । वास्तव में मैं बहुत यकीन है कि मैं देखा है एक समाधान के लिए बहुत समान है । मुझे लगता है कि एक विस्तार है मैं उल्लेख करने में विफल है कि मूल्यों के भीतर की इस सूची में integers की क्षमता है करने के लिए परिवर्तन करने के लिए किसी भी मूल्य से 0-9. क्या होता है अगर दूसरी प्रविष्टि की सूची में अब एक 1. वहाँ वैसे भी है को स्वचालित करने के लिए कड़ी प्रक्रिया है कि इस तरह के परिणाम होगा #0-10-20-4-60-8000-1-9
42Dugg

@Dugg मैं अद्यतन के साथ एक और जवाब है ।
Tim Biegeleisen

इस के रूप में अच्छी तरह के रूप में एक और जवाब के ऊपर महान काम करता है, हालांकि, अगर इस सूची में बदल गया है कि इस तरह की पहली प्रविष्टि इस सूची में अब एक 1, परिणाम है #-100-20-4-60-8000-1-9 जहां एक पानी का छींटा है, दुर्भाग्य से रखा बहुत शुरुआत में. वहाँ किसी भी तरह से खत्म करने के लिए है कि से हो रहा है कि इस तरह के परिणाम के लिए किया जाएगा #100-20-4-60-8000-1-9? इसके अलावा, आप किया गया है की एक टन में मदद तो दूर इस के साथ. धन्यवाद!
42Dugg

@42Dugg की जाँच करें अद्यतन के जवाब. हम जोड़ सकते हैं एक सकारात्मक कैलेंडर जो दावा है कि डैश कर रहे हैं केवल के लिए जोड़ा अन्य पात्रों की तुलना में पहले से एक है ।
Tim Biegeleisen
0

यहाँ एक सरल उपाय है:

listOfIntegers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]

for i in listOfIntegers:
    if i != 0:
        print("-" + str(i), end="")
    else:
        print(str(i), end="")

प्रत्येक आइटम के लिए सूची में है, हम अगर जाँच आइटम नहीं है 0 के बराबर. यदि यह नहीं है बराबर 0 करने के लिए, हम बाहर प्रिंट आइटम के साथ एक पानी का छींटा इसे के सामने में, और का उपयोग करें end पैरामीटर से बचने के लिए नई लाइनों. अगर यह 0 है, हम बस से बाहर प्रिंट आइटम.

2021-11-23 04:35:53
0

एक पाश का उपयोग कर:

def func(nums):
    result = ''
    for i, num in enumerate(nums):
        if num != 0 and i != 0:
            result += '-'
        result += str(num)
    return result
2021-11-23 03:55:07

इस बाहर काम करता है महान है, हालांकि, अगर इस सूची में बदल गया है कि इस तरह की पहली प्रविष्टि इस सूची में अब एक 1, परिणाम है #-100-20-4-60-8000-1-9 जहां एक पानी का छींटा है, दुर्भाग्य से रखा बहुत शुरुआत में. वहाँ किसी भी तरह से खत्म करने के लिए है कि से हो रहा है कि इस तरह के परिणाम के लिए किया जाएगा #100-20-4-60-8000-1-9? धन्यवाद!
42Dugg

के लिए खेद है कि लापता बढ़त के मामले में । हम केवल जोड़ सकते हैं एक शर्त को छोड़ करने के लिए पहले नंबर. मैं संपादित किया है कोड के हिसाब से.
Tyler Liu

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में