【问题标题】:Can I apply a function to the variable in a for loop definition (Python)我可以将函数应用于for循环定义中的变量吗(Python)
【发布时间】:2013-06-18 03:28:11
【问题描述】:

我正在使用 python 3.2 解析电子邮件。

我有一个列表中的每个电子邮件文件。我想将电子邮件细分为标题列表和正文列表。

你觉得这个方法怎么样?

def decap(self):
    # separate headers from bodies

    self.heads = []; self.bodies = []

    for email.readlines() in self.inbox.dex:                                                                                                                                     
        """The first 20 lines appended to the heads list"""
        self.heads.append(email[:10])
        """Remaining lines appended to the bodies list"""
        self.bodies.append(email[10:])

self.inbox.dex 是文件对象列表

【问题讨论】:

  • 不,你不能那样做。
  • 哎呀,我想唯一愚蠢的问题是没有被问到的问题......或类似的问题。

标签: python algorithm list iteration user-defined-functions


【解决方案1】:

你快到了

...
for email in self.inbox.dex:
    email = email.readlines()
    ...

此外,您可以使用列表理解(更紧凑)来做到这一点:

data = ((email[:10], email[10:]) for email in 
        (x.readlines() for x in self.inbox.dex))
self.heads, self.bodies = zip(*data)

【讨论】:

  • 在进行了您建议的第一次编辑后,我刚刚回到 SO。邮编对我来说是新的。您认为哪种方法可以更好地处理电子邮件的解析(可能很大)目录?
  • 两者应该非常相似。
猜你喜欢
  • 2020-02-05
  • 2020-12-21
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-15
相关资源
最近更新 更多