是否可以打印出for循环的唯一第一个输出?

时间:2018-11-01 04:46:37

标签: python pandas for-loop

我想问一下,是否可以将输出打印为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]

3 个答案:

答案 0 :(得分:1)

在第一次迭代后仅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}')

答案 1 :(得分:1)

没有内置的方法可以执行此操作,但是您可以对其进行编程:

first_run = True
for i in range(10):
    if first_run:
        print("This is the first iteration of the loop!")
        first_run = False
    print(i)

但是看起来您只是想打印熊猫数据框的第一行。您可能要看一下head() function

答案 2 :(得分:1)

怎么样,

for i in range(10):
    print("This is the first iteration of the loop!")
    break