Pythonでは、文字列内の数字を分割するためにいくつかの方法があります。以下にその一部を紹介します。
1. 正規表現を使用する
Pythonのre
モジュールを使用して、正規表現で文字列を分割することができます。
import re
srcs = '80kg 65.5kg 72W 69km 100t'.split()
for src in srcs:
m = re.match(r'^([\d.]+)(\D+)$', src)
assert m
value, unit = float(m.group(1)), m.group(2)
print(f'{src} -> "{value}", "{unit}"')
このコードは、各文字列を数字部分と非数字部分に分割します。結果は次のようになります。
80kg -> "80.0", "kg"
65.5kg -> "65.5", "kg"
72W -> "72.0", "W"
69km -> "69.0", "km"
100t -> "100.0", "t"
2. 文字列の置換と分割を使用する
特定の単位が含まれている場合、その単位をスペースとその単位に置換した後、スペースで分割することも可能です。
units = ("kg", "W", "km", "t")
srcs = '80kg 65.5kg 72W 69km 100t'
s = srcs
for unit in units:
s = s.replace(unit, " " + unit)
print(s.split())
n_unit_list = list(zip(*[iter(s.split())] * 2))
print(n_unit_list)
x = [(float(d), u) for (d, u) in zip(*[iter(s.split())] * 2)]
print(x)
このコードは、各文字列を数字部分と単位部分に分割します。結果は次のようになります。
['80', 'kg', '65.5', 'kg', '72', 'W', '69', 'km', '100', 't']
[('80', 'kg'), ('65.5', 'kg'), ('72', 'W'), ('69', 'km'), ('100', 't')]
[(80.0, 'kg'), (65.5, 'kg'), (72.0, 'W'), (69.0, 'km'), (100.0, 't')]
これらの方法を使用することで、Pythonで文字列内の数字を効率的に分割することができます。