split() を使用してユーザー入力を 2 つに分割できることは知っていますが、複数の変数で構成される入力をどのように分割しますか? 例: ユーザー入力:
Shawn=14:soccer#2991842
私がしたいこと:
name = Shawn
age = 14
course = soccer
idnumber = 2991842
そのようなことをする最善の方法は何ですか?
split() を使用してユーザー入力を 2 つに分割できることは知っていますが、複数の変数で構成される入力をどのように分割しますか? 例: ユーザー入力:
Shawn=14:soccer#2991842
私がしたいこと:
name = Shawn
age = 14
course = soccer
idnumber = 2991842
そのようなことをする最善の方法は何ですか?
str = 'Shawn=14:soccer#2991842'
keys = ['name', 'age', 'course', 'idnumber']
values = re.split('[=:#]', str)
print dict(zip(keys, values))
Out[114]: {'age': '14', 'course': 'soccer', 'idnumber': '2991842', 'name': 'Shawn'}
それらを辞書キーの下に保存しても問題ない場合は、名前付きグループ参照を使用できます
import re
x='shawn=14:soccer#2991842'
re.match(r'(?P<name>.*?)=(?P<age>.*):(?P<course>.*?)#(?P<idnumber>.*)', x).groupdict()
{'idnumber': '2991842', 'course': 'soccer', 'age': '14', 'name': 'shawn
これが私がそれを行う方法です。
def splitStr(str):
temp = str.split(':')
temp_nameAge = temp[0].split('=')
temp_courseId = temp[1].split('#')
name = temp_nameAge[0]
age = int(temp_nameAge[1])
course = temp_courseId[0]
idnumber = int(temp_courseId[1])
print 'Name = %s, age = %i, course = %s, id_number = %i' % (name, age, course, idnumber)