读取列表,拆分列表,然后将其分成3个新列表

时间:2018-03-25 05:23:38

标签: python

我有一个文件,其中包含美国每个邮政编码,城市和州的列表。当我读到一个列表时,它看起来像" '00501', 'Huntsville', 'NY'"。

所以我在Python中尝试做的是:

打开文件,阅读everysingle line,拆分行,然后创建3个新列表Zip,City,State,并将原始列表中的所有数据放入新列表中。

到目前为止,我有以下代码:

def main():
   zipcode = []
   city = []
   state = []

   file_object = open("zipcodes.txt", "r")
   theList = file_object.readlines()
   splitlist = theList.split(',')

   zipcode.append(splitlist[0])
   city.append(splitlist[1])
   state.append(splitlist[2])

   file_object.close()

1 个答案:

答案 0 :(得分:0)

你有基础,你只是错过了一个循环,所以该过程重复文件中的每一行:

theList = file_object.readlines()
for line in theList:
   splitlist = line.split(',')

   zipcode.append(splitlist[0])
   city.append(splitlist[1])
   state.append(splitlist[2])

请注意,readlines()会返回整个文件,以便您的theList包含整个文件的内容。你只需要循环它。

以下是您可以尝试的其他版本:

def main():

   zips = []
   cities = []
   states = []

   with open('zipcodes.txt', 'r') as f:
      for line in f:
         bits = line.split(',')
         zips.append(bits[0])
         cities.append(bits[1])
         states.append(bits[2])

with_statement是一种读取文件的方法。它确保文件自动关闭。

for line in f:循环是您在代码中缺少的循环 - 这将遍历每一行。

for循环的主体正是你所写的,所以那部分你已经很好了。