Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะแยกตัวเลขออกจากสตริงใน Python ได้อย่างไร?


หากคุณต้องการเฉพาะจำนวนเต็มบวก คุณสามารถแยกและค้นหาตัวเลขได้ดังนี้:

>>> str ="h3110 23 cat 444.4 rabbit 11 2 dog">>> [int(s) สำหรับ s ใน str.split() if s.isdigit()][23, 11, 2] 

สำหรับกรณีอื่นๆ การใช้นิพจน์ทั่วไปจะเป็นทางเลือกที่ดีที่สุด นอกจากนี้ เมื่อแยกค่า จะเป็นการดีที่สุดที่จะแปลงเป็น int จากสตริง ตัวอย่างเช่น:

>>> นำเข้าอีกครั้ง>>> [float(s) for s in re.findall(r'-?\d+\.?\d*', 'he33.45llo -42 I\'m a 32 string 30 ')][33.45, -42.0, 32.0, 30.0]