Python 将文本文件转换为列表

Python 将文本文件转换为列表,python,list,Python,List,我想解析文本文件的每一行,每一行看起来都类似于: New Mexico,Santa Fe Alabama,Montgomery 我想分析每一行,这样我就可以得出以下结论: states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas'] cities = ['Montgomery', 'Juneau', 'Phoenix', 'Little Rock'] 文本文件的内容已存储在函数中:f.read(),定义如下: #module imports im

我想解析文本文件的每一行,每一行看起来都类似于:

New Mexico,Santa Fe
Alabama,Montgomery
我想分析每一行,这样我就可以得出以下结论:

states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas']
cities = ['Montgomery', 'Juneau', 'Phoenix', 'Little Rock']
文本文件的内容已存储在函数中:
f.read()
,定义如下:

#module imports
import sys
import random

fname = sys.argv[1]
with open(fname, 'r') as f:
    print(f.read())
这有用吗

>>> with open('file') as f:
...     text = [i.strip() for i in f]
...     
... 
>>> text
['New Mexico,Santa Fe', 'Alabama,Montgomery']
>>> states = []
>>> cities = []
>>> for i in text:
...     states.append(i.split(',')[0])
...     cities.append(i.split(',')[1])
...     
... 
>>> states
['New Mexico', 'Alabama']
>>> cities
['Santa Fe', 'Montgomery']
>>> 
您可以这样做:
首先把它转换成字典。然后一个列表是字典的
,另一个列表是字典的

在使用之前,也不要忘记检查
sys.argv
长度

import sys

if len(sys.argv) < 2:
    print('must provide filename')
    exit()

with open(sys.argv[1], 'r') as f:
    d = dict(reversed(line.strip().split(',')) for line in f)

    cities = list(d.keys())
    states = list(d.values())

print('cities = %r' % cities)
print('states = %r' % states)
导入系统 如果len(系统argv)<2: 打印('必须提供文件名') 退出() 将open(sys.argv[1],'r')作为f: d=dict(对于f中的行,反转(line.strip().split(',')) 城市=列表(d.keys()) 状态=列表(d.值()) 打印('cities=%r'%cities) 打印('states=%r'%states)
我添加了
反向
,因为城市名称作为键,州名称作为值更有意义。

你能显示你的代码吗?请指出哪些方面给你带来了困难。另外,你的主题线有点混乱。您说dictionary(意思是python
dict
?),但显示两个列表。给我们一些代码,然后我们可以继续。代码做什么@IDJAW这个网站是为有特定编码问题的人而设的。您需要打开文件,读取行并将它们拆分为列表。这就是我们需要看到的代码。我将文件名作为参数传入。这是打印所有行的代码:
#module imports sys import random fname=sys.argv[1],open(fname,'r')为f:print(f.read())
只需执行一次
拆分
即可对代码进行小的优化。
import sys

if len(sys.argv) < 2:
    print('must provide filename')
    exit()

with open(sys.argv[1], 'r') as f:
    d = dict(reversed(line.strip().split(',')) for line in f)

    cities = list(d.keys())
    states = list(d.values())

print('cities = %r' % cities)
print('states = %r' % states)