首页 > 解决方案 > 是否可以从 for 循环中打印出唯一的第一个输出?

问题描述

我想问一下,是否可以打印出for循环的唯一第一个输出?

这是我当前的源代码。在for i in tup[:1]我试图将输出设置为仅打印第一个输出但它不起作用。即使我删除了 for 循环,但结果得到了最后一个输出。

for row, cols in df.iterrows():
    cols_list = cols[cols>=0.98].index.tolist()
    if len(cols_list)>0:
        row_list = [row]*len(cols_list)
        tup = tuple(zip(row_list,cols_list))
        if len(tup) > 1:
            for i in tup[:1]:
                print(row, f' >0.98 {cols_list}')
    else:
        print(f'>0.98 {cols_list}')

这是当前输出

 5  >0.98 [5, 30, 40, 42]
10  >0.98 [10, 30, 40, 42]
11  >0.98 [11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 33, 34, 38, 39, 40, 41, 42, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54]
12  >0.98 [11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 38, 39, 40, 41, 42, 44

但我的预期输出是只打印第一个输出5 >0.98 [5, 30, 40, 42]

标签: pythonpandasfor-loop

解决方案


只是break第一次迭代后的循环:

for row, cols in df.iterrows():
    cols_list = cols[cols>=0.98].index.tolist()
    if len(cols_list)>0:
        row_list = [row]*len(cols_list)
        tup = tuple(zip(row_list,cols_list))
        if len(tup) > 1:
           print(row, f' >0.98 {cols_list}')
           break
    else:
        print(f'>0.98 {cols_list}')

推荐阅读