Python 2d列表索引返回单个字符

时间:2019-06-09 07:30:52

标签: python multidimensional-array file-handling

我在下面的数据/代码中遇到了意外的行为。

我希望data[0][1]是第一个列表中的第二个字符(57.9),但我却得到了第一个列表中第一项的第二个字符('e')。

有人可以解释为什么吗?这与我将数据读入列表的方式有关吗?

Mercury,57.9,4879,88,0
Venus,108.2,12104,224.7,0
Earth,149.6,12756,365.2,1
Mars,227.9,6792,687,2
Jupiter,778.6,142984,4331,67
Saturn,1433.5,120536,10747,62
Uranus,2872.5,51118,30589,27
Neptune,4495.1,49528,59800,14
Pluto,5906.4,2370,90560,5
planets = []

file = open('planets_data.txt', 'r')

data = file.readlines()
for line in data:
    planets.append(line.strip().split(','))

file.close

print(data[0][1])

1 个答案:

答案 0 :(得分:1)

如果正确编写,肯定可以。

print(planets[0][1])

不完全与问题相关,而且

  • 请勿使用file.close(),而应使用with
  • 不要调用变量file,它是python关键字
  • 您可以直接使用for遍历行

固定版本:

planets = []

with open('planets_data.txt', 'r') as fil:
    for line in fil:
        planets.append(line.strip().split(','))

print(planets[0][1])