从输入字符串到namedtuple python 2.7

问题描述 投票:0回答:2

你好我是python的初学者,我想知道是否有一种方法来读取一行并将其转换为一个namedtuple我将解释我有这两行

MARKS      CLASS      NAME       ID        
92         2          Calum      1 

对于第一行:

line = raw_input()
person = namedtuple('person',line)

我做了我的名字

现在,当我正在阅读第二行时,我不知道如何在一个namedTuple中插入这些信息我试图拆分它我尝试了所有这些方法,但我不能做到这一点

>>> line = raw_input().split(' ')
92         2          Calum      1 
>>> line
['92', '', '', '', '', '', '', '', '', '2', '', '', '', '', '', '', 
'', '', '', 'Calum', '', '', '', '', '', '1', '']
>>> line = raw_input().split('/t')
92         2          Calum      1 
>>> line
['92         2          Calum      1 ']
>>> line = raw_input().split('        ')
92         2          Calum      1 
>>> line
['92', ' 2', '  Calum      1 ']
>>> 

无论我正在尝试什么,我都不能有4个参数所以如果你有任何想法我怎么能把这个字符串分成列帮助我亲切地感谢你

python string python-2.7 input namedtuple
2个回答
3
投票

只需使用split()就可以分割任何空白字符(制表符或多个空格)。所以

line = raw_input()
args = line.split()

然后,因为namedtuple接受多个参数而不是列表,所以你只需要使用*运算符解包参数列表。

person = Person(*args)

0
投票

所以根据我的答案是使用'\ t'而不是'/ t'

a=raw_input().split('\t')
© www.soinside.com 2019 - 2024. All rights reserved.