我有一个名为CustomerList.txt
的文本文件,看起来像这样
134998,Madison,Foxwell,825 John Street,Staunton,VA,24401,6655414998
The end result should be like this
with open("CustomerList.txt", "r") as fin:
ID, Firstname, Lastname, Address, City, State, Zip, Phone = zip(*[l.split() for l in fin.readlines()])
这就是我到目前为止所得到的,但是我得到一个错误,说我需要超过3个值才能升级。我昨天刚开始使用元组,所以请为这个新手尽可能保持基本。如果你可以包括一个解释,为什么它的工作会很棒!
步骤1:数据文件中的每一行都应成为元组列表中的元组(或列表中的列表)。 It would need to be before what I created in the last program which is this.
第2步: 在返回函数内部,我需要获取一个ID号(如134998)来搜索匹配项,如果找到匹配项,则将其作为元组/列表返回,如果不返回空元组/列表。它们可以是字符串,因为它们不是计算。
答案 0 :(得分:0)
希望以下内容能让您入门:
首先,默认情况下split()
,按空格分割(即空格),并希望用逗号分割 - 所以将其更改为:.split(',')
...
另外,我运行了rstrip()
来删除new_line字符(\n
)。
此外,您希望将标题压缩到每一行而不是整体数据。你当前的循环'循环线(每个都包含一个单独的数据条目),因此zip需要在其中(拉链每条单独的行)而不是在它之外(即不拉链)整个数据)。此外,我个人发现压缩数组比分配长列表变量更容易(我不确定这是否真的有效)。
这就是我从第一步开始的方式:
with open("positionfile.txt", "r") as fin:
header = ['ID', 'Firstname', 'Lastname', 'Address', 'City', 'State', 'Zip', 'Phone']
print [zip(header,l.rstrip().split(',')) for l in fin.readlines()]