使用 for 循环简化数据 (Python)

发布于 2024-07-26 04:54:25 字数 810 浏览 1 评论 0原文

我试图简化代码:

            header = []
            header.append(header1)
            header.append(header2)                
            header.append(header3)
            header.append(header4)
            header.append(header5)
            header.append(header6)

where:

            header1 = str(input.headerOut1)
            header2 = str(input.headerOut2)
            header3 = str(input.headerOut3)
            header4 = str(input.headerOut4)
            header5 = str(input.headerOut5)
            header6 = str(input.headerOut6)

我想使用 for 循环,例如:

   headerList = []
   for i in range(6)
          headerList.append(header+i) 

但是,python 不会识别 header+i 代表字符串 header1。 有什么方法可以简化这段代码或让 for 循环工作吗? 太感谢了!

I was trying to simplify the code:

            header = []
            header.append(header1)
            header.append(header2)                
            header.append(header3)
            header.append(header4)
            header.append(header5)
            header.append(header6)

where:

            header1 = str(input.headerOut1)
            header2 = str(input.headerOut2)
            header3 = str(input.headerOut3)
            header4 = str(input.headerOut4)
            header5 = str(input.headerOut5)
            header6 = str(input.headerOut6)

I had wanted to use a for loop, like:

   headerList = []
   for i in range(6)
          headerList.append(header+i) 

however, python won't recognize that header+i represents the string header1. Is there any way to simplify this code or get the for loop to work? Thank you so much!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

很糊涂小朋友 2024-08-02 04:54:25

您确实应该将数据构建为列表或字典,如下所示:

input.headerOut[1]
input.headerOut[2]
# etc.

这将使这变得更容易,并且更Pythonic。 但是您可以使用 getattr 执行您想要的操作:

headerList = []
for i in range(1, 7):
    header = str(getattr(input, 'headerOut%d' % i))
    headerList.append(header)

You should really structure your data as a list or a dictionary, like this:

input.headerOut[1]
input.headerOut[2]
# etc.

which would make this a lot easier, and more Pythonic. But you can do what you want using getattr:

headerList = []
for i in range(1, 7):
    header = str(getattr(input, 'headerOut%d' % i))
    headerList.append(header)
征﹌骨岁月お 2024-08-02 04:54:25
header = [str(getattr(input, "headerOut%d" % x)) for x in range(1,7)]
header = [str(getattr(input, "headerOut%d" % x)) for x in range(1,7)]
清旖 2024-08-02 04:54:25

将标头放入数组中并循环遍历它。

Put the headers in an array and loop through it.

你的背包 2024-08-02 04:54:25

您可以使用 locals 获取本地范围作为字典:

headerList = []
for i in xrange(1, 7):
    headerList.append(locals()['header%s' % (i,)])

不过,如果可能的话,您应该直接使用 input 变量,正如其他一些答案所建议的那样。

You can use locals to get the the local scope as a dict:

headerList = []
for i in xrange(1, 7):
    headerList.append(locals()['header%s' % (i,)])

If possible, though, you should just use the input variable directly, as some of the other answers suggested.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文