python - 如何对列表进行子集化,直到满足特定条件(使用逻辑运算符、循环或函数)?
问题描述
我有一个 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)
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:数学 10
推荐阅读
- c# - 如何从 .NET 调用 luasql 脚本
- c++ - Google 语音识别(cpp 示例):未定义对 AssignDescriptors() 的引用
- c++ - 模板 Cast-Operator 规范
- hadoop - 我们可以检查 hive 删除表的历史记录或它周围的详细信息吗?
- node.js - 一个进程的标准输出到nodejs中另一个(ffmpeg)的标准输入
- c# - ServicePartitionResolver.ResolveAsync 永远挂起
- elasticsearch - ElasticSearch 中的英语分析器(词干)不起作用
- azure-devops - Azure DevOps 发布管道中的计数器
- angular - 没有将“exportAs”设置为“bs-modal”的指令(“
- javascript - Microsoft.Owin.Security.Facebook 和 Facebook SDK for Javascript Oauth2 之间的区别