繁体   English   中英

我一遍又一遍地复制和粘贴我的 Python 代码。 我如何将它浓缩成更干净的东西?

[英]I'm copying and pasting my Python code over and over. How do I condense it into something more clean?

我正在从多个 DataFrame 中读取数据以创建 object。 实例变量之一是嵌套目录。 DataFrame 的顺序是已知的,但是 Frame 中的列名可能是垃圾。 我目前映射如下:

iloc = 0
blocks[i].myvar['AA']['A']['a'] = df_row.iloc[0, iloc]; iloc += 1
blocks[i].myvar['AA']['A']['b'] = df_row.iloc[0, iloc]; iloc += 1
...
blocks[i].myvar['AA']['B']['a'] = df_row.iloc[0, iloc]; iloc += 1
blocks[i].myvar['AA']['B']['b'] = df_row.iloc[0, iloc]; iloc += 1
   

对于这样的 50 行。 看起来很丑,有没有人建议如何清理这个? 我只想将 map 列 0:49 放入 object 中,稍后我可以在我的代码中使用简单名称('AA'、'B'、'a')轻松索引。

-拉夫

我对您的程序没有太多信息,但是如果您发现自己多次复制和粘贴相同的代码行,则需要使用一种也称为 function 的方法(因为您使用的是 python)。 function 允许您多次运行同一位代码,而无需复制和粘贴。 代替...

块[i].myvar['AA']['A']['a'] = df_row.iloc[0, iloc]; iloc += 1 块[i].myvar['AA']['A']['b'] = df_row.iloc[0, iloc]; iloc += 1 xn 次

..您可以将其放入 function 并在其位置调用函数的名称。

`def my_func(num):
   for x in range(num):
   //Insert code here

my_func(num)

请记住,如果您在 function 中打印结果,则无需输入 print(my_func(num))。 如果不打印结果,则需要将 function 调用放入打印语句中。

如果可以使用循环,请尝试使用循环来锻炼重复工作并避免复制和粘贴代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM