0

我有一个名为的文本文件CustomerList.txt,它看起来像这样

134998,Madison,Foxwell,825 John Street,Staunton,VA,24401,6655414998

最终结果应该是这样的

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 步:数据文件中的每一行都应成为元组列表中的一个元组(或列表中的一个列表)。它需要在我在最后一个程序中创建的内容之前。

第 2 步:在返回函数内部,我需要获取一个 ID 号(如 134998)来搜索匹配项,如果找到匹配项,则将其作为元组/列表返回,如果没有返回空元组/列表。它们可以是字符串,因为它们不是计算。

4

1 回答 1

0

希望以下内容可以帮助您入门:

首先,默认情况下split(),按空格(即空格)拆分,并且您希望它用逗号拆分-因此将其更改为:.split(',')...

另外,我跑去rstrip()删除 new_line 字符(\n)。

此外,您希望将标题压缩到每一行而不是整体数据。您当前的“for 循环”循环遍历各行(每行都包含一个单独的数据条目),因此 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()]
于 2016-12-09T01:29:10.843 回答