【问题标题】:From an input string to namedtuple python 2.7从输入字符串到命名元组 python 2.7
【发布时间】:2018-09-10 10:13:44
【问题描述】:

您好,我是 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 个参数所以如果您知道如何将这个字符串拆分为列,请帮助我 谢谢你 亲切地

【问题讨论】:

  • 用'\t'代替'/t'

标签: python string python-2.7 input namedtuple


【解决方案1】:

仅使用split() 将在任何空白字符(制表符或多个空格)处拆分。所以

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

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

person = Person(*args)

【讨论】:

  • 输入不起作用是从 python 2.7 中删除还是我应该使用库?
  • @FEDOUABOUZENOUN:对不起,意思是raw_input,习惯的力量
【解决方案2】:

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

a=raw_input().split('\t')

【讨论】:

    猜你喜欢
    • 2018-01-10
    • 2017-10-30
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 2010-12-09
    相关资源
    最近更新 更多