【问题标题】:How do i add a list and an argument?如何添加列表和参数?
【发布时间】:2020-02-23 02:07:59
【问题描述】:

我是 python 新手,无法找到解决方案:

我有一个空列表和一个通过处理用户输入生成的命令。我想合并它们,使其像正常命令一样工作。

lst = []
cmd = insert(0,5)

我希望它像这样工作

lst.insert(0,5)

所以输出是

[5]

但每次循环时,cmd 的值都会改变。 连接、.join 或打印格式不适用于此处 我应该尝试上课还是有其他更简单的方法可以这样做?

【问题讨论】:

    标签: python-3.x join python-3.6


    【解决方案1】:

    这将写入 5 到列表的第 0 个索引

    lst = []
    lst[0] = 5
    # lst is [5] now
    

    这会将5添加到列表末尾。

    lst = []
    lst.append(5)
    # lst is [5] now
    

    这将删除列表中的最后一个值。

    lst = [5]
    lst.pop()
    # lst is empty now []
    

    您也可以在某个索引处使用pop()

    lst = [5, 4, 3, 2, 1]
    lst.pop(2)
    # lst is changed to [5, 4, 2, 1]
    

    如果用户定义了索引和值,你可以试试这样的:

    # The index the user provides has to be <= to the length of the list
    lst = []
    cmd = input("Give a command:\n").split(" ")  # input must be space-separated
    if cmd[0] == "append":
        lst.append(cmd[1])
    elif cmd[0] == "insert":
        lst[cmd[1]] = cmd[2]
    elif cmd[0] == "pop" and len(cmd) == 1:
        lst.pop()
    elif cmd[0] == "pop" and len(cmd) == 2:
        lst.pop(cmd[1])
    
    

    其中存在一些问题,例如错误处理,但如果您事先知道输入是什么,它应该可以工作。

    【讨论】:

    • 您能提供一个示例输入吗?
    • 感谢 Flip,但我的程序要求用户输入一些命令,例如带有空格或其他占位符的 insert 0 5append 5。然后程序处理输入以生成命令。 insert(0,5)append(5)。如果没有命令而只有索引和值,那会更容易,但正如你上面提到的,它可以是插入、弹出或追加。程序需要将该函数调用到列表中。我希望我现在清楚了。
    • 您可以检查第一个单词是什么并执行该操作,因此insert 0 5 执行lst[0] = 5pop 0 执行lst.pop(0) 等等其余功能。跨度>
    • 感谢翻转。我想到了这个选项,但试图找到一些解决方法。我现在猜这是唯一的出路。
    • 这可能是最简单的方法。也许您可以找到一种更简单的方法来执行此操作,但这种方式很容易进行错误处理。就像列表为空并且用户执行 pop 时一样,这将引发错误并停止程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多