1. 使用内置函数 `isdigit()` 和 `isalpha()`:
s = "a1b2c3"
digits = [char for char in s if char.isdigit()]
letters = [char for char in s if char.isalpha()]
print("Digits:", digits)
print("Letters:", letters)
2. 使用正则表达式:
import re
s = "a1b2c3"
numbers = re.findall(r'\d+', s)
letters = re.findall(r'[a-zA-Z]', s)
print("Numbers:", numbers)
print("Letters:", letters)
3. 使用 `re.split()` 函数:
import re
s = "a1b2c3"
split_string = re.split(r'(\d+)', s)
numbers = [int(num) for num in split_string[::2]]
letters = [num for num in split_string[1::2] if num]
print("Numbers:", numbers)
print("Letters:", letters)
4. 使用 `itertools.groupby()` 函数:
import itertools
s = "a1b2c3"
numbers = [''.join(group) for key, group in itertools.groupby(s, key=str.isdigit)]
letters = [''.join(group) for key, group in itertools.groupby(s, key=str.isalpha)]
print("Numbers:", numbers)
print("Letters:", letters)