如何在单个 python 循环中执行两个 for 循环?
How to do two for loops in a single python loop?
我不是要缩短这个:
for x in data1:
for y in data2:
*lines*
但要做到这一点:
for x in data1:
*lines*
for y in data2:
*lines*
像这样进入一个循环(x 是来自 data1 的行,y 只是来自 data2 的行):
for x,y in data1,data2:
*lines*
这可能吗?我想在一个循环中拟合然后预测朴素贝叶斯数据:
# group data by prodi
for no, dfx_prodi in dfx.groupby('prodi'):
# implement naive bayes fit data
bnb.fit(dfx_prodi[var], dfx_prodi['daftar_kembali'])
for no, dfy_prodi in dfy.groupby('prodi'):
# implement naive bayes predict data
y_pred = bnb.predict(dfy_prodi[var])
它有效,但结果似乎可疑,有没有办法在保持 groupby 的情况下在一个循环中完成?
除非我误解了什么,你可以直接使用 zip
函数,例如 as
for x,y in zip(x_list,y_list):
print(x,y)
在你的情况下应该是这样的
for (no, dfx_prodi), (no, dfy_prodi) in zip(dfx.groupby('prodi'), dfy.groupby('prodi')):
# implement naive bayes fit data
bnb.fit(dfx_prodi[var], dfx_prodi['daftar_kembali'])
y_pred = bnb.predict(dfy_prodi[var])
如果两个列表(可迭代对象)data1 和 data2 的长度相同,您可以这样做:
for x, y in zip(data1, data2):
do_something(x, y)
zip 从 2 个或更多可迭代对象创建元组 (x, y)。如果 data1 和 data2 的长度不同,您可以查看 itertools
标准库中的 zip_longest
(它为缺失项添加 None
值)。
我不是要缩短这个:
for x in data1:
for y in data2:
*lines*
但要做到这一点:
for x in data1:
*lines*
for y in data2:
*lines*
像这样进入一个循环(x 是来自 data1 的行,y 只是来自 data2 的行):
for x,y in data1,data2:
*lines*
这可能吗?我想在一个循环中拟合然后预测朴素贝叶斯数据:
# group data by prodi
for no, dfx_prodi in dfx.groupby('prodi'):
# implement naive bayes fit data
bnb.fit(dfx_prodi[var], dfx_prodi['daftar_kembali'])
for no, dfy_prodi in dfy.groupby('prodi'):
# implement naive bayes predict data
y_pred = bnb.predict(dfy_prodi[var])
它有效,但结果似乎可疑,有没有办法在保持 groupby 的情况下在一个循环中完成?
除非我误解了什么,你可以直接使用 zip
函数,例如 as
for x,y in zip(x_list,y_list):
print(x,y)
在你的情况下应该是这样的
for (no, dfx_prodi), (no, dfy_prodi) in zip(dfx.groupby('prodi'), dfy.groupby('prodi')):
# implement naive bayes fit data
bnb.fit(dfx_prodi[var], dfx_prodi['daftar_kembali'])
y_pred = bnb.predict(dfy_prodi[var])
如果两个列表(可迭代对象)data1 和 data2 的长度相同,您可以这样做:
for x, y in zip(data1, data2):
do_something(x, y)
zip 从 2 个或更多可迭代对象创建元组 (x, y)。如果 data1 和 data2 的长度不同,您可以查看 itertools
标准库中的 zip_longest
(它为缺失项添加 None
值)。