Python 如何子集列表直到满足特定条件(使用逻辑运算符、循环或函数)?
我有一个txt文件,其中包含关于每个州SAT分数的信息。我创建了3个空列表,并使用下面的代码进行了附加。现在,我想对列表进行子集,以便输出显示口头分数>20的州名。下面是我的数据集示例:Python 如何子集列表直到满足特定条件(使用逻辑运算符、循环或函数)?,python,python-3.x,list,Python,Python 3.x,List,我有一个txt文件,其中包含关于每个州SAT分数的信息。我创建了3个空列表,并使用下面的代码进行了附加。现在,我想对列表进行子集,以便输出显示口头分数>20的州名。下面是我的数据集示例: filepath=open('myfile.txt','r') l=[] states=[] verbals=[] maths=[] for h in filepath: n=h.strip() b=n.split() l.append(b) f
filepath=open('myfile.txt','r')
l=[]
states=[]
verbals=[]
maths=[]
for h in filepath:
n=h.strip()
b=n.split()
l.append(b)
for (state,verbal,math) in l:
states.append(state)
verbals.append(verbal)
maths.append(math)
filepath.close()
State Verbal Math
NY 50 100
NJ 10 90
DC 25 50
Carolina 40 10
我尝试了下面的代码,但出现了错误
Verbal[verbal>20]
**Error:**'>' not supported between instances of 'list' and 'int'
如果你能用代码提供解释,那将是一个很棒的python新手
state = ['NY','NJ','DC','Carolina']
verbal = [50,10,25,40]
math = [100,90,50,10]
for idx, _ in enumerate(verbal):
if verbal[idx] > 20:
print("State {0}: Verbal {1}: Math {2}".format(state[idx], verbal[idx], math[idx]))
或者使用元组:
satScore = [('NY', 50, 100), ('NJ', 10, 90), ('DC', 25, 50), ('Carolina', 40, 10)]
for idx, _ in enumerate(satScore):
if satScore[idx][1] > 20:
print("State {0}: Verbal {1}: Math {2}".format(satScore[idx][0], satScore[idx][1], satScore[idx][2]))
输出:
纽约州:口头50:数学100州议会:口头25:数学50
卡罗莱纳州:口头40:Math 10您将收到一个错误,因为列表不支持以这种方式选择数据 您可以使用列表理解根据您想要的内容仅选择分数,这与您的概念非常相似,但应用于列表中的每个项目,并仅返回匹配的项目
Verbal_above20 = [i for i in verbals if i > 20]
但由于您存储数据的方式,很难获取与密钥对应的数据的其他部分。我强烈建议您查看有关清洁和咀嚼数据的工作。您的列表名称是什么?
verball
是否包含它的所有分数?@BernardL..yes verball包含它的所有分数..@jpp。。请参见上文以了解更多说明。如果需要更多信息,请告诉我