Hướng dẫn python split by digit - python chia theo chữ số

Tôi muốn phân tách các chuỗi như thế này

Nội dung chính ShowShow

  • Làm thế nào để bạn chia một số trong một chuỗi trong Python?
  • Làm cách nào để chia một số trong một chuỗi?
  • Bạn có thể chia một số trong Python không?
  • Làm thế nào để bạn phân tách các số và chữ cái trong một chuỗi trong Python?

'foofo21'
'bar432'
'foobar12345'

vào trong

['foofo', '21']
['bar', '432']
['foobar', '12345']

Có ai đó biết một cách dễ dàng và đơn giản để làm điều này trong Python?

Hướng dẫn python split by digit - python chia theo chữ số

hỏi ngày 9 tháng 1 năm 2009 lúc 23:02Jan 9, 2009 at 23:02Jan 9, 2009 at 23:02

Tôi sẽ tiếp cận điều này bằng cách sử dụng

['foofo', '21']
['bar', '432']
['foobar', '12345']
7 theo cách sau:
import re
match = re.match(r"([a-z]+)([0-9]+)", 'foofo21', re.I)
if match:
    items = match.groups()
print(items)
>> ("foofo", "21")

Đã trả lời ngày 9 tháng 1 năm 2009 lúc 23:12Jan 9, 2009 at 23:12Jan 9, 2009 at 23:12

Evan Fosmarkevan FosmarkEvan FosmarkEvan Fosmark

96.2K34 Huy hiệu vàng104 Huy hiệu bạc117 Huy hiệu đồng34 gold badges104 silver badges117 bronze badges34 gold badges104 silver badges117 bronze badges

8

def mysplit(s):
    head = s.rstrip('0123456789')
    tail = s[len(head):]
    return head, tail
>>> [mysplit(s) for s in ['foofo21', 'bar432', 'foobar12345']]
[('foofo', '21'), ('bar', '432'), ('foobar', '12345')]

Giorgos Xou

1.0411 huy hiệu vàng8 Huy hiệu bạc23 Huy hiệu đồng1 gold badge8 silver badges23 bronze badges1 gold badge8 silver badges23 bronze badges

Đã trả lời ngày 10 tháng 1 năm 2009 lúc 6:17Jan 10, 2009 at 6:17Jan 10, 2009 at 6:17

MikemikeMikeMike

1.0366 huy hiệu bạc7 huy hiệu đồng6 silver badges7 bronze badges6 silver badges7 bronze badges

7

Một lựa chọn khác:

>>> [re.split(r'(\d+)', s) for s in ('foofo21', 'bar432', 'foobar12345')]
[['foofo', '21', ''], ['bar', '432', ''], ['foobar', '12345', '']]

Đã trả lời ngày 10 tháng 1 năm 2009 lúc 0:54Jan 10, 2009 at 0:54Jan 10, 2009 at 0:54

JFSJFSjfsjfs

384K183 Huy hiệu vàng949 Huy hiệu bạc1621 Huy hiệu Đồng183 gold badges949 silver badges1621 bronze badges183 gold badges949 silver badges1621 bronze badges

2

>>> r = re.compile("([a-zA-Z]+)([0-9]+)")
>>> m = r.match("foobar12345")
>>> m.group(1)
'foobar'
>>> m.group(2)
'12345'

Vì vậy, nếu bạn có một danh sách các chuỗi có định dạng đó:

import re
r = re.compile("([a-zA-Z]+)([0-9]+)")
strings = ['foofo21', 'bar432', 'foobar12345']
print [r.match(string).groups() for string in strings]

Output:

[('foofo', '21'), ('bar', '432'), ('foobar', '12345')]

Đã trả lời ngày 9 tháng 1 năm 2009 lúc 23:12Jan 9, 2009 at 23:12Jan 9, 2009 at 23:12

0

Evan Fosmarkevan FosmarkEvan Fosmark

['foofo', '21']
['bar', '432']
['foobar', '12345']
0

96.2K34 Huy hiệu vàng104 Huy hiệu bạc117 Huy hiệu đồng34 gold badges104 silver badges117 bronze badges

Giorgos XouJan 9, 2009 at 23:40

1.0411 huy hiệu vàng8 Huy hiệu bạc23 Huy hiệu đồng1 gold badge8 silver badges23 bronze badgesPEZ

Đã trả lời ngày 10 tháng 1 năm 2009 lúc 6:17Jan 10, 2009 at 6:177 gold badges42 silver badges65 bronze badges

3

MikemikeMike

['foofo', '21']
['bar', '432']
['foobar', '12345']
0

1.0366 huy hiệu bạc7 huy hiệu đồng6 silver badges7 bronze badges

Một lựa chọn khác:5 gold badges32 silver badges43 bronze badges

Đã trả lời ngày 10 tháng 1 năm 2009 lúc 0:54Jan 10, 2009 at 0:54Aug 5, 2019 at 13:44

JFSJFSjfsBryo Much

384K183 Huy hiệu vàng949 Huy hiệu bạc1621 Huy hiệu Đồng183 gold badges949 silver badges1621 bronze badges1 silver badge2 bronze badges

['foofo', '21']
['bar', '432']
['foobar', '12345']
1

Vì vậy, nếu bạn có một danh sách các chuỗi có định dạng đó:Nov 19, 2015 at 19:28

Evan Fosmarkevan Fosmark

['foofo', '21']
['bar', '432']
['foobar', '12345']
2

96.2K34 Huy hiệu vàng104 Huy hiệu bạc117 Huy hiệu đồng

['foofo', '21']
['bar', '432']
['foobar', '12345']
3

Giorgos XouJan 9, 2009 at 23:40Apr 25, 2019 at 6:27

1.0411 huy hiệu vàng8 Huy hiệu bạc23 Huy hiệu đồngPEZ

['foofo', '21']
['bar', '432']
['foobar', '12345']
4

Đã trả lời ngày 10 tháng 1 năm 2009 lúc 6:177 gold badges42 silver badges65 bronze badgesOct 8, 2020 at 12:38

Mikemike

['foofo', '21']
['bar', '432']
['foobar', '12345']
5

1.0366 huy hiệu bạc7 huy hiệu đồng

Một lựa chọn khác:5 gold badges32 silver badges43 bronze badges18 gold badges31 silver badges51 bronze badges

Đã trả lời ngày 10 tháng 1 năm 2009 lúc 0:54Aug 5, 2019 at 13:44Sep 22, 2019 at 18:27

1

JFSJFSBryo Much

['foofo', '21']
['bar', '432']
['foobar', '12345']
6

384K183 Huy hiệu vàng949 Huy hiệu bạc1621 Huy hiệu Đồng1 silver badge2 bronze badges

Vì vậy, nếu bạn có một danh sách các chuỗi có định dạng đó:Nov 19, 2015 at 19:28May 18 at 18:42

Làm thế nào để bạn chia một số trong một chuỗi trong Python?

Tôi luôn là người đưa ra findall () =) split() method to split a string into text and number, e.g. my_list = re. split(r'(\d+)', my_str) .

Làm cách nào để chia một số trong một chuỗi?

Lưu ý rằng tôi đang sử dụng Regex đơn giản hơn (ít hơn để loại) so với hầu hết các câu trả lời trước đó..

Đã trả lời ngày 9 tháng 1 năm 2009 lúc 23:40Apr 25, 2019 at 6:27

Pezpez

16.6K7 Huy hiệu vàng42 Huy hiệu bạc65 Huy hiệu ĐồngOct 8, 2020 at 12:38

Bạn có thể chia một số trong Python không?

Dưới đây là một hàm đơn giản để tách rời nhiều từ và số từ một chuỗi có độ dài nào, phương thức RE chỉ tách biệt hai từ và số đầu tiên. Tôi nghĩ rằng điều này sẽ giúp mọi người khác trong tương lai,Use the str() class to convert the integer to a string. Use a list comprehension to iterate over the string. On each iteration, use the int() class to convert each substring to an integer.

Làm thế nào để bạn phân tách các số và chữ cái trong một chuỗi trong Python?

Nikaido.

4.1365 Huy hiệu vàng32 Huy hiệu bạc43 Huy hiệu đồng18 gold badges31 silver badges51 bronze badges

Đã trả lời ngày 5 tháng 8 năm 2019 lúc 13:44Sep 22, 2019 at 18:27

Bryo Manybryo nhiều