【问题标题】:How to keep the ID the same for a list when appending追加时如何保持列表的ID相同
【发布时间】:2017-04-19 14:05:19
【问题描述】:

在不改变原始列表ID的情况下尝试获取列表,并且列表中每个元素之间只能包含空格。

我不断收到此错误,我无法找到一种方法来保持其 ID 相同,同时在打印时每个元素之间只有空格。

    newlist=[array[x] for x in range(len(array)) if x !=0]
    array=[]
    array.append(newlist)
    newlist=[]
    print(' '.join(array))

TypeError:序列项 0:预期的 str 实例,找到列表

错误信息是最后一行

while ans:


    ans=input("\nSelect an option?\n")

    if ans=="A":
        if len(array) < 10:
            A = list(input('\nInput string: \n'))
            if len(A) == 1 and str(A):
                array += A
            if len(array) == 10:
                print( "Invalid input\n")   

    elif ans=="P":
      print(' '.join(array))

    elif ans=="N":

        newlist=[array[x] for x in range(len(array)) if x !=0]
        array=[]
        array.append(newlist)
        newlist=[]
        print(' '.join(array))


    elif ans=="M":
      print(id(array))

这就是一半代码的样子。

我的意图是 ID 应该始终保持不变,当输入 N 时,数组的第一个元素被删除

不使用 popdelremoveslicingindex允许

【问题讨论】:

  • array 在您的列表理解语句之前是否具有先前的值?如果没有,您在定义之前使用array

标签: python-3.x


【解决方案1】:

那么“清除”呢? :) Python 3.3 及更高版本

elif ans=="N":

    newlist=[array[x] for x in range(len(array)) if x !=0]
    array.clear()
    array.extend(newlist)
    print(' '.join(array))

【讨论】:

  • N 输入应删除数组的第一个元素,同时保持 ID 相同
  • 更新了我的答案
  • 啊,我忘了说我不能使用pop、del、remove、slicing和index。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-19
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-08
相关资源
最近更新 更多