मेरे पास "12-569-8" जैसी एक स्ट्रिंग है और मैं इसे नकारात्मक और सकारात्मक पूर्णांकों की सूची में विभाजित करना चाहता हूं ताकि मैं उन्हें एक साथ जोड़ सकूं - जैसे कि

list = ['1', '2', '-5', '6', '9', '-8']

जहां योग 5 होगा। मैं ज्यादातर सूची को विभाजित करने के लिए संघर्ष कर रहा हूं।

0
Amanda C 2 अप्रैल 2020, 20:18
कृपया वह कोड पोस्ट करें जो आपको परेशानी दे रहा है। यह कोई कोडिंग या ट्यूटोरियल सेवा नहीं है। "मैं ज्यादातर संघर्ष कर रहा हूं" पर्याप्त समस्या विनिर्देश नहीं है।
 – 
Prune
2 अप्रैल 2020, 20:21
उस ने कहा, या तो देखें कि नियमित अभिव्यक्तियों के साथ पूर्णांक को कैसे संभालना है, या ... स्ट्रिंग को अलग-अलग वर्णों में तोड़ दें। व्यक्तिगत अंकों को परिवर्तित करते हुए, उस सूची से गुजरें। जब आप माइनस साइन करते हैं, तो आप जानते हैं कि अगले अंक को नेगेटिव करना है।
 – 
Prune
2 अप्रैल 2020, 20:22
क्या उत्तर ने मदद की? मत भूलो कि आप अपवोट कर सकते हैं और उत्तर स्वीकार कर सकते हैं। देखें जब कोई मेरे प्रश्न का उत्तर देता है तो मुझे क्या करना चाहिए?, धन्यवाद!
 – 
yatu
2 अप्रैल 2020, 23:31

2 जवाब

यदि आप आयात का उपयोग नहीं करना चाहते हैं, तो आप सभी वर्णों को एक स्थान से अलग कर सकते हैं और ऋण चिह्नों के बाद स्थान को हटा सकते हैं। फिर स्ट्रिंग को रिक्त स्थान पर विभाजित करें और प्रत्येक संख्या की सही व्याख्या की जाएगी:

s = "12-569-8"
c = " ".join(s).replace("- ","-") # space out, remove space after minus
n = list(map(int,c.split()))      # split and convert to integers 

print(c) # '1 2 -5 6 9 -8'
print(n) # [1, 2, -5, 6, 9, -8]
0
Alain T. 2 अप्रैल 2020, 21:58

एक संभावित दृष्टिकोण एक नियमित अभिव्यक्ति का उपयोग करना हो सकता है, और दोनों अंकों या अंकों से पहले एक नकारात्मक चिह्न से मेल खाना चाहिए:

s = "12-569-8"
import re

sum(map(int,re.findall(r'(\d|-\d)', s)))
# 5

अन्य दृष्टिकोण, जैसा कि टिप्पणियों में प्रून द्वारा उल्लेख किया गया है, पात्रों पर लूपिंग कर रहा है और जो आप पाते हैं उसके आधार पर जोड़ना या घटाना:

res = 0
i=0
while i < len(s):
    x = s[i]
    if x != '-':
        res += int(x)
    else:
        i += 1
        res -= int(s[i])
    i += 1

print(res)
# 5
1
yatu 2 अप्रैल 2020, 20:27