0

split() を使用してユーザー入力を 2 つに分割できることは知っていますが、複数の変数で構成される入力をどのように分割しますか? 例: ユーザー入力:

Shawn=14:soccer#2991842

私がしたいこと:

name = Shawn
age = 14
course = soccer
idnumber = 2991842

そのようなことをする最善の方法は何ですか?

4

6 に答える 6

3
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'}
于 2013-11-06T22:47:39.740 に答える
1

それらを辞書キーの下に保存しても問題ない場合は、名前付きグループ参照を使用できます

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
于 2013-11-06T22:42:05.473 に答える
0

これが私がそれを行う方法です。

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)
于 2013-11-06T22:43:16.583 に答える