Ope*_*era 1 python bash python-3.x
我有一个这种格式的文件:
W 10 45 50
X 23 49 80
Y 55 90 56
Z 90 65 78
Run Code Online (Sandbox Code Playgroud)
我想检查每一行中的所有数字是否都大于 50,打印一些东西,如果不是全部都大于 50,则打印一些其他东西。我怎样才能做到这一点?
这是我完成一项工作的代码:
W 10 45 50
X 23 49 80
Y 55 90 56
Z 90 65 78
Run Code Online (Sandbox Code Playgroud)
这给了我输出[False, False, True, True],但我想打印每一行的第一列,然后如果是False,则打印Fail,或者是True,打印Pass:
W: Fail
X: Fail
Y: Pass
Z: Pass
Run Code Online (Sandbox Code Playgroud)
你可以考虑这个awk解决方案:
awk '{printf "%s: ", $1; for (i=2; i<=NF; ++i) if ($i < 50) {print "Fail"; next}; print "Pass"}' file
W: Fail
X: Fail
Y: Pass
Z: Pass
Run Code Online (Sandbox Code Playgroud)
单线选手没有奖品。但是可读性差是要付出代价的;)
with open('the_numbers', 'r') as server:
for row in server:
tokens = row.split()
pas = all(int(column) >= 50 for column in tokens[1:])
print(f"{tokens[0]}: {('fail', 'pass')[pas]}")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |