Из входной строки в namedtuple python 2.7 - PullRequest
0 голосов
/ 10 сентября 2018

Здравствуйте, я новичок в Python, и я хочу знать, нет ли у вас возможности прочитать строку и преобразовать ее в именованный кортеж Я объясню, у меня есть это 2 строки

MARKS      CLASS      NAME       ID        
92         2          Calum      1 

Для первой строки:

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

и я сделал свой именной кортеж

теперь, когда я читаю вторую строку, я не знаю, как вставить эту информацию в именованный кортеж, я пытался ее разбить Я попробовал все эти методы, но я не смог сделать это

>>> 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 аргументов. Пожалуйста, если у вас есть идея, как мне разбить эту строку на столбцы, помогите мне благодарю вас Сердечно

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Таким образом, ответ на мой вопрос будет использовать '\ t' вместо '/ t'

a=raw_input().split('\t')
0 голосов
/ 10 сентября 2018

Просто использование split() будет разбивать любые пробельные символы (табуляции или несколько пробелов).Итак,

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

Тогда, поскольку namedtuple принимает несколько аргументов, а не список, вам просто нужно развернуть список аргументов, используя оператор *.

person = Person(*args)
...