Python 制作一个满足条件的列表
我有一个包含以下数据的CSV文件:Python 制作一个满足条件的列表,python,list,if-statement,comparison,Python,List,If Statement,Comparison,我有一个包含以下数据的CSV文件: 1,1,3,2,2,1 2,1,3,2,1,1 3,2,4,2,7,3 4,1,3,2,3,1 5,3,3,1,1,1 我想创建一个包含第六列元素的列表,第二列为1。简而言之,我想要的最终结果是[1,1,1] 以下是我编写的代码: input = open("C:\\test.txt", "r") for line in input.readlines(): line = line.strip() no, grade, gpa, sex,
1,1,3,2,2,1
2,1,3,2,1,1
3,2,4,2,7,3
4,1,3,2,3,1
5,3,3,1,1,1
我想创建一个包含第六列元素的列表,第二列为1。简而言之,我想要的最终结果是[1,1,1]
以下是我编写的代码:
input = open("C:\\test.txt", "r")
for line in input.readlines():
line = line.strip()
no, grade, gpa, sex, preview, review = line.split(',')
listno1 = []
a = float(grade)
if a == 1:
listno1.append(int(review))
当我打印时,结果是这样的:
[]
[]
[]
[]
[1]
[2]
[]
[]
[4]
[]
请帮忙?我想坚持使用列表 您正在为每一行创建列表,而不是在循环外只创建一次列表 你也在重塑CSV轮子;改用新的。由于您仅为满足条件的每行选取一列,因此可以使用列表:
import csv
with open("C:\\test.txt", "r") as infile:
reader = csv.reader(infile)
listno1 = [int(row[5]) for row in reader if int(row[1]) == 1]
这基本上与:
import csv
with open("C:\\test.txt", "r") as infile:
reader = csv.reader(infile)
listno1 = []
for no, grade, gpa, sex, preview, review in reader:
grade = int(grade)
if grade == 1:
listno1.append(int(review))
但是使用更简洁的表示法。您正在为每一行创建列表,而不是在循环之外只创建一次列表 你也在重塑CSV轮子;改用新的。由于您仅为满足条件的每行选取一列,因此可以使用列表:
import csv
with open("C:\\test.txt", "r") as infile:
reader = csv.reader(infile)
listno1 = [int(row[5]) for row in reader if int(row[1]) == 1]
这基本上与:
import csv
with open("C:\\test.txt", "r") as infile:
reader = csv.reader(infile)
listno1 = []
for no, grade, gpa, sex, preview, review in reader:
grade = int(grade)
if grade == 1:
listno1.append(int(review))
但是使用更简洁的表示法。您正在为每一行创建列表,而不是在循环之外只创建一次列表 你也在重塑CSV轮子;改用新的。由于您仅为满足条件的每行选取一列,因此可以使用列表:
import csv
with open("C:\\test.txt", "r") as infile:
reader = csv.reader(infile)
listno1 = [int(row[5]) for row in reader if int(row[1]) == 1]
这基本上与:
import csv
with open("C:\\test.txt", "r") as infile:
reader = csv.reader(infile)
listno1 = []
for no, grade, gpa, sex, preview, review in reader:
grade = int(grade)
if grade == 1:
listno1.append(int(review))
但是使用更简洁的表示法。您正在为每一行创建列表,而不是在循环之外只创建一次列表 你也在重塑CSV轮子;改用新的。由于您仅为满足条件的每行选取一列,因此可以使用列表:
import csv
with open("C:\\test.txt", "r") as infile:
reader = csv.reader(infile)
listno1 = [int(row[5]) for row in reader if int(row[1]) == 1]
这基本上与:
import csv
with open("C:\\test.txt", "r") as infile:
reader = csv.reader(infile)
listno1 = []
for no, grade, gpa, sex, preview, review in reader:
grade = int(grade)
if grade == 1:
listno1.append(int(review))
但是用更简洁的表示法。循环中有
listno1=[]
,所以每次都要清除它。循环中有listno1=[]
所以每次都要清除它。循环中有listno1=[]
所以每次都要清除它。你有listno1=[]
在循环内部,因此每次都要清除它。更紧凑的使用如果等级==“1”
而不强制转换为整数更紧凑的使用如果等级==“1”
而不强制转换为整数更紧凑的使用如果等级==“1”
而不强制转换为整数更紧凑的使用如果等级==“1”
不强制转换为整数