tyring将不同的项目附加到列表中

时间:2017-05-17 16:41:58

标签: python list dictionary

这是我的代码

f= open("average-latitude-longitude-countries.csv", "r")
for line in f:
    line = line.strip("\n")

    elements = line.split(",")
    code = elements[0].strip('"')
    elements[1] = elements[1].strip('"')
    if len(elements) == 4:
        name = elements[1]
        latitude = float(elements[2])
        longitude = float(elements[3])
    else:
        elements[2] = elements[2].strip('"')
        name = elements[2] + elements[1]
        latitude = float(elements[3])
        longitude = float(elements[4])
    list[]
    list.append(code, name, latitude, longitude)

此csv文件如下

AD  Andorra 42.5    1.5
AE  United Arab Emirates    24  54
AF  Afghanistan 33  65
AG  Antigua and Barbuda 17.05   -61.8
AI  Anguilla    18.25   -63.17

我想要做的是阅读代码,国家名称,纬度,经度

list[(code, name, lat, long)
     (code, name, lat, long)]

这种格式。

我刚开始使用python而且我已尝试过“for line in f” 并将项目附加到列表中阅读文档。然而我似乎无法理解的是我如何在该列表中添加四个不同属性的项目。

我似乎无法理解何时使用列表和字典。字典是不可变的?我似乎无法看到这方面的优点。字典会更好吗?

3 个答案:

答案 0 :(得分:2)

不要重新发明轮子,而是使用图书馆,例如Collections.sort(childRequirementGroupControllers, (a1, a2) -> a1.getRequirementGroup.getName().compareTo(a2.getRequirementGroup.getName()));

pandas

返回一个可以类似dict格式访问的数据帧。

答案 1 :(得分:2)

您可以使用str.split()

f = open("average-latitude-longitude-countries.csv", "r")

l = []
for line in f:
    x = tuple(str(line).split())
    l.append(x)

print l

答案 2 :(得分:0)

只需使用标准的csv库,有一天你可能会踩到一些csv perk 甚至,专业的库PTable,如果只需要prettyprint,numpy np.loadtxt用于重载数据等。

https://docs.python.org/2/library/csv.html

在前面的讨论中看到类似的例子

Python import csv to list

import csv

with open('file.csv', 'r') as f:
  reader = csv.reader(f)
  your_list = list(reader)  # Python 3