我想创建一个代码,可以将文件追加到列表中,剥离并拆分它,然后找到Payments.txt
中与规则匹配的行,找到状态为“A”的客户“还有很多钱可以支付。我可以做前两个标准,可以部分做第三个标准。我可以找到有优秀金额的客户,但不能找到状态为“A”的客户。我必须使用列表,而不是字典。
这是我的代码:
myList = []
Status = "A"
myFile = open("Payments.txt")
record = myFile.readlines()
for line in record:
myList.append(line.strip().split(','))
myFile.close()
for z in record:
details = [[x for x in myList if x[0] == Status], [x for x in myList if x[2] > x[4]]] #This is were I am having trouble
if details:
print(details)
break
这就是结果:
[[], [['E1234', '12/09/14', '440', 'A', '0'], ['E3431', '10/01/12', '320', 'N', '120'], ['E5322', '05/04/02', '503', 'A', '320'], ['E9422', '26/11/16', '124', 'N', '0']]]
为什么我在结果开头得到一个空列表? Payments.txt
中没有空行。
列表结构如下:
['Customer number', 'Date when they joined', 'Total amount', 'Status', 'Amount paid']
答案 0 :(得分:2)
试试这个:
len(x) == 5
在public modelObject:modelType = new Model({});
constructor(){
let self = this;
Object.keys(this.modelObject).forEach(keyElement => {
self.modelObject[keyElement] = "n/a";
});
}
中,5表示正常列表结构的长度。最好用变量替换它。
答案 1 :(得分:0)
试试这个:
details = [[x for x in myList if x[0] == Status and x[2] > x[4]]
我认为你之所以得到一个是因为你检查A或大于。