如何删除和追加列表python

时间:2016-04-12 02:52:35

标签: python

这是我的代码

    k = []
    dot = input('length:')
    a, b = input('Enter:')
    for i in range(0,dot):
        k.append('.')

    for i in range(a, b+1):
        k[i].append('x')

    print k

当我尝试运行它时,输出将是,

length:9
Enter:3, 4
Traceback (most recent call last):
  File "light_switch.py", line 8, in <module>
    k[i].append('x')
AttributeError: 'str' object has no attribute 'append'

我想在'。'的位置插入'x'。所以我该怎么做。

2 个答案:

答案 0 :(得分:1)

如果您想用dropdown-menu替换第二个范围内的'.',请执行以下操作:

'x'

错误是因为当您索引for i in range(a, b+1): k[i] = 'x' 时,您获得了k[i]str只有k,但值为list }。 str,是不可变的,缺少str方法(因为你说你想要替换,而不是连接,你不会想要一个append - 类似的操作)。如果您希望append - 与每个append的行为相似,则会将'.'更改为k[i].append('x')(这在逻辑上构建新的连续k[i] += 'x'并指定它返回,而不是在适当的位置发生变异),或者在str的末尾添加一大堆x,你只需list

注意:如果k.append('x')a < 0,则会引发b+1 > dot;前者是不可修复的,后者可以通过简单地使第一个IndexError循环运行for而不是range(max(dot, b+1))来以一种愚蠢的方式处理。

答案 1 :(得分:0)

要用x替换点,您可以尝试以下代码:

k = []
dot = input('length:')
a, b = input('Enter:')
for i in range(0,dot):
     k.append('.')

for i in range(a, b+1):
    k[i] = 'x'

print k

你已经有'。'在您尝试添加x的位置,因此您只需要指定x而不是'。'。您尝试使用[j] .append('x')访问的位置不是列表,您正在尝试将x附加到它。所以它给出了错误。