मैं इस प्रकार की संरचना के यादृच्छिक रूप से उत्पन्न तारों में पाए गए पूर्णांक निकालने की कोशिश कर रहा हूं;
string1 = "3x-2-44"
मैंने सफलतापूर्वक एक स्ट्रिंग में पाए गए पूर्णांक के साथ एक सूची भरने में कामयाब रहा है;
L1 = (re.findall(r"d+", string1))
"L1" सभी पूर्णांकों की एक उपयोगी सूची रखेगा, लेकिन यह दर्शाता है कि संख्या नकारात्मक है या नहीं, उदाहरण के लिए "string1" L1 को धारण करेगा
[3,2,44]
बजाय कुछ की तरह:
[3,-2,-44]
यह निर्धारित करना भी कैसे संभव होगा कि पूर्णांक के पिछले चरित्र को फिर से निर्धारित किया जाए कि वह सकारात्मक है या नकारात्मक?
उत्तर:
जवाब के लिए 2 № 1तुंहारे regex
इस तरह होना चाहिए:
>>> import re
>>> string1 = "3x-2-44"
# v for matching zero or one occurrence of `-` in string
>>> re.findall("-?d+", string1)
["3", "-2", "-44"]
निकाले गए संख्या तारों को परिवर्तित करने के लिए int
, आप उपयोग कर सकते है map
जैसा:
>>> list(map(int, re.findall("-?d+", string1)))
[3, -2, -44]