python - python多行列表输出和排序
问题描述
查询产生多行答案,并非总是所有行都有任何输出/结果,并且会产生空行[]
我想要
- 当任何一行有结果要显示并忽略所有其他空行时[案例 1]
- 如果所有行都为空,则打印出一条消息。【案例二】
我已经尝试了许多带有循环语句的选项,if & else
或者all()
我any()
最好的方法是仅满足第一个要求- 我无法获得所有 empty 的第二个要求。
只提供第一个要求的代码片段
f = query(data)
for x in f:
if x:
print(x)
else:
if all(x):
print("no f found")
另外,我已经尝试过两者any()
和all()
它们的not
变化,但没有运气
案例1 f查询的输出,当有一些结果时,[在这种情况下只有4个结果中的2个]
['p=SDVjXSERgCziEsyhT4dIySuh9ha5Udt5b9F5TATeJ']
[]
['p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC31']
[]
欲望输出
p=SDVjXSERgCziEsyhT4dIySuh9ha5Udt5b9F5TATeJ
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC31
情况2,f查询的输出,完全没有结果的时候
[]
[]
[]
[]
欲望输出
no f found
**我不想要的是为空no f found
的每一行获取一个**
p=SDVjXSERgCziEsyhT4dIySuh9ha5Udt5b9F5TATeJ
no f found
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC31
no f found
或者
no f found
no f found
no f found
no f found
如果有人能帮帮我,我将不胜感激
解决方案
您可以通过引入一个变量轻松解决这个问题,发现:
found = False
f = query(data)
for x in f:
if x:
print(x)
found = True
if not found:
print("no f found")
'if not any(f)' 也可能有效,但无论如何,当你第一次遍历列表时使用这样的变量是可以的,这样你就可以获得信息而无需再次使用 any()。
使用 any() 这可能是一个不错的方法:
f = query(data)
if not any(f):
print("no f found")
else:
for x in f:
if x:
print(x)
推荐阅读
- c - 为什么编译时已知的格式字符串没有优化?
- mysql - 具有多个连接表的 Group_Concat
- sql - vba 函数中的 #Value 错误以返回记录集
- powerbi - 在 PowerBI 中使用 sigma 估计器作为 sbar/c4 计算 Cp Cpk 的 Dax 查询
- amazon-web-services - Codebuild 没有运行
- next.js - Unable to build project that includes a custom worker file
- prolog - 我无法进入第二个递归调用 Prolog
- excel - VBA XIRR 函数数据类型与动态数组不匹配
- javascript - 如何使用 supertest 附加文件并将 JSON 数据发送到请求正文?
- codeigniter - 如何将数据传递给引导模式?