python-3.x 在for循环中打印循环编号

ix0qys7i  于 2023-10-21  发布在  Python
关注(0)|答案(3)|浏览(158)

我有以下简单的代码(我的实际循环的非常简化的版本)

import pandas as pd
pd.DataFrame(
  [i+333 for i in range(5)]

)

然而,我还想添加一些机制,使for循环也打印值i。事

import pandas as pd
pd.DataFrame(
  [(i+333) & print(i) for i in range(5)]

)

有没有办法直接分配这样的指令在上述设置?

c9qzyr3d

c9qzyr3d1#

您可以将print(x) or ...添加到列表解析中。

[print(i) or i+333 for i in range(5)]

or条件的后半部分将始终被选择,因为print()不会返回任何内容,并且始终是false。

twh00eeo

twh00eeo2#

你可以在for循环中嵌入一个返回值的函数。这里有一个非常快速和简单的例子,我相信可以改进,但作为一个概念,看看以下内容:

import pandas as pd

def inc_and_print(x):
    v = x + 111
    print(v)
    return v

df = pd.DataFrame(
    [inc_and_print(i) for i in range(5)]
)
print(df)
111
112
113
114
115
     0
0  111
1  112
2  113
3  114
4  115
j7dteeu8

j7dteeu83#

您可以使用walrus operator并执行以下操作:

import pandas as pd
pd.DataFrame( [(num := i + 333, print(num))[0] for i in range(5)])

相关问题