\

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で文字列内の数字を効率的に分割することができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です