【问题标题】:Reading space separated input in Python在python中读取空格分隔的输入
【发布时间】:2011-11-30 01:53:09
【问题描述】:

这是输入规范
程序必须读取 t 行输入。每行由 2 个空格分隔的值组成,第一个是名称,第二个是年龄。输入示例

Mike 18
Kevin 35
Angel 56

如何在 python 中读取这种输入?如果我使用 raw_input(),姓名和年龄都在同一个变量中读取。

更新 我将重新指定问题。我们已经知道如何在 python 中读取格式化的输入。有没有一种方法可以读取 Python 中的格式化输入?如果是那怎么办?

【问题讨论】:

  • 先获取一些 Python 教程。那就学习如何使用split

标签: python input


【解决方案1】:

如果你有它在一个字符串中,你可以使用.split()来分隔它们。

>>> for string in ('Mike 18', 'Kevin 35', 'Angel 56'):
...   l = string.split()
...   print repr(l[0]), repr(int(l[1]))
...
'Mike' 18
'Kevin' 35
'Angel' 56
>>>

【讨论】:

    【解决方案2】:
    the_string = raw_input()
    name, age = the_string.split()
    

    【讨论】:

    • 如果我必须读取多个整数,如数千或数百万,并在输入时对它们进行操作。
    • raw_input 在 python 3 中不再使用,你应该使用list(map(str,input().split()))
    【解决方案3】:

    假设您使用的是 Python 3,则可以使用此语法

    inputs = list(map(str,input().split()))
    

    如果你想访问单个元素,你可以这样做

    m, n = map(str,input().split())
    

    【讨论】:

    • 这不起作用,因为第一项不是整数
    【解决方案4】:

    如果您已经知道输入的字段数,则可以执行以下操作:

    client_name = raw_input("Enter you first and last name: ")
    first_name, last_name = client_name.split() 
    

    如果您想遍历由空格分隔的字段,您可以执行以下操作:

    some_input = raw_input() # This input is the value separated by spaces
    for field in some_input.split():
        print field # this print can be replaced with any operation you'd like
        #             to perform on the fields.
    

    “split()”函数的更通用用法是:

        result_list = some_string.split(DELIMITER)
    

    DELIMETER 替换为您想用作分隔符的分隔符,并用单引号括起来。

    一个例子是:

        result_string = some_string.split('!')    
    

    上面的代码接受一个字符串并使用'!'分隔字段字符作为分隔符。

    【讨论】:

    • 如何将输入分隔为单个字符,中间没有任何空格。例如,我希望在矩阵中将输入 ABC 读取为“A”、“B”、“C”。我知道我可以使用 list("ABC") 来分隔,但我想使用 split() 来代替。
    【解决方案5】:

    对于 Python3:

    a, b = list(map(str, input().split()))
    v = int(b)
    

    【讨论】:

      【解决方案6】:

      对于 python 3 使用这个

      inp = list(map(int,input().split()))
      #input => java is a programming language
      #return as => ("java","is","a","programming","language")
      

      input() 接受来自 STDIN 的字符串。

      split() 拆分关于空白字符的字符串并返回一个字符串列表。

      map() 将第二个参数的每个元素传递给第一个参数并返回一个映射对象

      最后list() 将地图转换为列表

      【讨论】:

        【解决方案7】:

        对于python 3,它会是这样的 n,m,p=map(int,input().split())

        【讨论】:

          【解决方案8】:
          a=[]
          for j in range(3):
              a.append([int(i) for  i in input().split()])
          

          在上面的代码中,给定的输入,即 Mike 18 Kevin 35 Angel 56,将存储在数组 'a' 中,输出为 [['Mike', '18'], ['Kevin', '35 '], ['天使', '56']].

          【讨论】:

            猜你喜欢
            • 2015-03-08
            • 2012-10-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-06-01
            • 2017-08-20
            相关资源
            最近更新 更多