【问题标题】:how to assign string input as list in python如何在python中将字符串输入分配为列表
【发布时间】:2021-12-05 19:13:40
【问题描述】:

用户将列表作为输入[1,2,3,4]:

a = input()

它把它当作str。 我想将此数据放入本地列表b

b = a.strip('][').split(', ')
print(b)

输出:['1,2,3,4']

如何单独获取列表而不是单个实体?

【问题讨论】:

  • 为什么你在不同的分隔符上分割,而不是数字的实际分隔符?
  • 如果您在第一个 ' 之后和第二个之前拆分所有内容,则可以在 , 上拆分以单独获取每个元素。类似 sorted = a.split("'")[1].split("'")[0].split(",").
  • list(map(str,a))? --> ['1', '2', '3', '4']
  • @chickitychinachinesechicken 如果a'[1,2,3,4]' 将给出['[', '1', ',', '2', ',', '3', ',', '4', ']']
  • 然后更像b = list(map(str,ast.literal_eval(a)))

标签: python python-3.x list


【解决方案1】:

你应该使用.split(',') 而不是.split(', ')

【讨论】:

    【解决方案2】:

    您可以使用ast.literal_eval 这样做。

    import ast
    
    a = input()
    b = ast.literal_eval(a)
    
    print(b)
    
    # output
    [1, 2, 3, 4]
    

    来自文档:

    安全地计算表达式节点或包含 Python 的字符串 文字或容器显示。提供的字符串或节点只能 由以下 Python 文字结构组成:字符串、字节、 数字、元组、列表、字典、集合、布尔值、无和省略号。

    这可用于安全地评估包含 Python 的字符串 来自不受信任来源的值,无需解析这些值 自己。它无法评估任意复杂的 表达式,例如涉及运算符或索引。

    【讨论】:

      【解决方案3】:

      问题在于:

      b = a.strip('][').split(', ')
      

      您使用了 ', ' 带空格 而不是 ',' 不带空格 因为您的输入没有任何空格,如下所示:

      user is giving list as input [1,2,3,4]
      

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      【解决方案4】:

      ast.literal_eval(a) 将字符串输入作为list 数据类型,可以使用map 将其转换为单个字符串的列表:

      import ast
      b = list(map(str,ast.literal_eval(a)))
      

      ['1', '2', '3', '4']

      【讨论】:

        猜你喜欢
        • 2021-05-03
        • 1970-01-01
        • 2022-11-25
        • 2021-01-28
        • 1970-01-01
        • 2014-06-26
        • 1970-01-01
        • 2020-06-20
        • 2017-11-20
        相关资源
        最近更新 更多