Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列表未被正确读取?_Python_List - Fatal编程技术网

Python 列表未被正确读取?

Python 列表未被正确读取?,python,list,Python,List,因此,我试图编写一个基于文本的口袋妖怪游戏。然而,当我试图让我的程序找到口袋妖怪时,我遇到了一个问题,当我打算让它成为列表的长度时,python似乎正在逐字进行lenmonster list.txt文件: [查里扎德、查梅利恩、查曼德、维纳萨尔、艾维萨尔、布尔巴萨尔、布朗提斯、沃索尔、斯奎特尔] 代码: file.read返回一个字符串,因此对于rangelenmonster中的i,它正在遍历该字符串中的所有字符。使用file.readlines 如果每个怪物都在一个新行中,其他怪物用分隔符拆分

因此,我试图编写一个基于文本的口袋妖怪游戏。然而,当我试图让我的程序找到口袋妖怪时,我遇到了一个问题,当我打算让它成为列表的长度时,python似乎正在逐字进行lenmonster

list.txt文件: [查里扎德、查梅利恩、查曼德、维纳萨尔、艾维萨尔、布尔巴萨尔、布朗提斯、沃索尔、斯奎特尔]

代码:

file.read返回一个字符串,因此对于rangelenmonster中的i,它正在遍历该字符串中的所有字符。使用file.readlines

如果每个怪物都在一个新行中,其他怪物用分隔符拆分字符串

monster = file.read().split(',') # assuming "," is the delimiter
当您这样做时:monster=file.read此时monster是一个字符串。您需要将此字符串转换为列表。 您的list.txt不是作为列表计算的,因为它来自文本文件。 您可以使用eval内置方法计算收到的字符串,如下所示: 怪物列表=evalmonster 它将不起作用,但你的list.txt不正确,你需要在['pikachu','pokemon']中更改你的list.txt,你必须引用怪物的名字。 但不建议对此类问题使用eval方法。 您应该这样组织您的文件:

   pikachu
   pokemon
   ...
然后像这样读取文件:

monster=file.read()
monster_list = monster.split('\n')

您似乎认为python会使您的文本文件变红,并且会神奇地将其添加到列表中。monster将只是一个字符串,如果你想像listpython那样处理它,你需要将它转换成一个列表。当我希望它是列表的长度时,Python正在一个字母一个字母地处理它如果monster是一个字符串,而不是一个元素列表,那么您期望得到什么呢?Python不会神奇地知道您的文件内容应该被解释为一个列表,所以它是一个字符串“[Charizard,Charmeleon…]”。也要学着去做。实际上,看起来你会从整个官方教程中受益-他可能需要去掉[and],如果它们也在同一行中,因为用户似乎认为他可以在文件中为list编写python语法,读取它将创建一个实际的list类型对象
   pikachu
   pokemon
   ...
monster=file.read()
monster_list = monster.split('\n')