【问题标题】:How do I print one word at a time from a list I got from user input? [duplicate]如何从用户输入的列表中一次打印一个单词? [复制]
【发布时间】:2020-09-22 19:06:22
【问题描述】:

我要求用户输入姓名,我需要从列表中一次返回一个,但结果是只返回单个字母而不是全名。

Names = input("Enter names here: ")

我得到的清单是这样的,

吉姆、约翰、莎拉、马克

这是我尝试的,

print (Names[0])

我得到的回报

J

我只想要吉姆作为回报。

【问题讨论】:

  • 输入返回单个字符串。你需要做的是split首先是names变量

标签: python python-3.x


【解决方案1】:

当输入读取数据时,它将返回一个字符串,您必须将其分解为一个列表。值得庆幸的是,字符串有一个方法 split 就是为了这个。试试:

Names = input("Enter names here: ")
Names = Names.split(',')

【讨论】:

    【解决方案2】:

    您可以使用简单的正则表达式在空格或逗号和其他常见分隔符上拆分字符串。这会给你一个字符串数组,以防万一。

    然后你选择了数组的第一个元素。

    line="Jim, John, Sarah, Mark"           
    words = re.split(r'[;,\s]\s*', line)
    print (words[0])
    

    【讨论】:

      【解决方案3】:

      “Names”变量将输入存储为字符串。使用以下方法将其转换为列表:

      names_list = Names.split(', ')
      print(names_list[0])
      

      但是,这仅在您输入以逗号分隔的名称后跟空格时才有效。 更好的方法是先创建一个空列表,然后将输入元素附加到列表中。下面是一个例子:

      # Creating an empty list 
      names_list = []
      
      # Iterates till the input is empty or none
      while True:
          inp = input("Enter name: ")
          if inp == "":
              break
          names_list.append(inp)
      
      # Prints first element of the list
      print(names_list[0])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-05
        • 1970-01-01
        • 2021-06-03
        • 1970-01-01
        • 1970-01-01
        • 2014-04-05
        • 2023-03-13
        相关资源
        最近更新 更多