从列表中删除元素

时间:2018-08-16 17:57:39

标签: python

我正在学习Python,所以我决定编写一些要和朋友开玩笑的东西。基本上,该项目是关于帮助Anderson到达汽车。用户将在每个D输入中移动“ A”。我将地图设为列表(文件Anderson.py,第5行),但无法从列表中删除这些空格。我一直遇到ValueError:list.remove(x):x不在列表中。

主要:

from Andershow import Anderson

if __name__ == "__main__":
    anderson = Anderson
    anderson.icon = 'A'
    icon = anderson.icon
    print("Ajude o anderson a chegar até o carro!")
    anderson.print_map()

    for x in range(1, 5):
        comando = input("GO:")
        if comando == "D":
            anderson.walk(comando)
            print(anderson.Anderson.map_area)

Anderson.py

class Anderson:
    icon = ''
    comando = ''
    map_area = list("A                    Carro")
    resultado = ''

    def __init__(self, icon, map):
        self.icon = 'A'
        self.map = map

    def walk(comando):
        icon = 'A'
        map_area = list("A                    Carro")
        resultado = ''

        if comando == "D":
           for items in map_area:
                map_area.remove(resultado)
                joining = "".join(map_area)

    def print_map():
        print("A                    Carro")

从现在开始就是这样!非常感谢!

3 个答案:

答案 0 :(得分:0)

您正在尝试搜索空字符串;根据{{​​1}}和serialized方法的定义,该操作将始终失败。而是寻找一个空格字符:

Point A

这将带您解决其余的编码错误-很多。

此外,您无需将字符串转换为列表。使用字符串Point B方法将第一个空格替换为空字符串。


我强烈建议您采用增量编程。您尝试编写许多代码而不进行测试,现在您可以一次调试很多东西。

答案 1 :(得分:0)

map_area是已被赋予字符串的列表。更具体地说,字符串"A Carro"

将此字符串提供给list()构造函数时,您将得到

In [30]: a = list("A            Carro")

In [31]: a
Out[31]:
['A',
 ' ',
 ' ',
 ' ',
 ' ',
 ' ',
 ' ',
 ' ',
 ' ',
 ' ',
 ' ',
 ' ',
 ' ',
 'C',
 'a',
 'r',
 'r',
 'o']

您在列表中有' ',而不是''

要解决此问题,请致电removeremove(' ') OR

进行map_result = "A Carro".split(" ")使您的remove通话保持原状

答案 2 :(得分:0)

这有很多问题,我无法全部解决,但主要的问题并不是真正了解类(到处都忘记自己)。您还不了解list()对字符串的工作方式。它现在可以使用,但是Anderson一次只能移一个空格,而不是制表符。同样,我们大多数人不会说西班牙语(我知道一点),因此在将来,请至少翻译一下。这是完整的代码(我将它们移到一个文件中以减少麻烦)。

class Anderson:

    def __init__(self, icon):
        self.icon = icon
        self.map_area = [self.icon, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ',"carro"] 

    def walk(self,comando):
        resultado = ' '

        if comando == "D":
            self.map_area.remove(resultado)

    def print_map(self):
        map = ""
        for char in self.map_area:
            map = map+ char

        print(map)
if __name__ == "__main__":
    anderson = Anderson("A")
    print("Ajude o anderson a chegar até o carro!")
    anderson.print_map()

    for x in range(1, 12):
        comando = input("GO:").upper()
        if comando == "D":
            anderson.walk(comando)
        anderson.print_map()