Python 使用不断变化的变量定义列表

Python 使用不断变化的变量定义列表,python,Python,我想制作一段代码,从RSS提要中提取标题和链接,并将其编译成一个变量,然后在消息体中使用。我的问题是,每次我从RSS中提取信息时,身体都会被重新定义。我对编程和python非常陌生,我觉得使用列表是最好的选择 for i in range(3): MessageTitle = feed['items'][i].title MessageLink = " - ",feed['items'][i]['link'] Body = "%s%s%s%s" % (MessageT

我想制作一段代码,从RSS提要中提取标题和链接,并将其编译成一个变量,然后在消息体中使用。我的问题是,每次我从RSS中提取信息时,身体都会被重新定义。我对编程和python非常陌生,我觉得使用列表是最好的选择

for i in range(3):

    MessageTitle = feed['items'][i].title
    MessageLink = " - ",feed['items'][i]['link']

    Body = "%s%s%s%s" % (MessageTitle,"\n","\n", MessageLink) #in unicode

    gmail_user = "user@gmail.com"
    gmail_pwd = "pw"

    mail("user@gmail.com",
         "Reddit Update",
         Body)
我打算在body下面插入列表,并使用body来定义它。。比如:

list[i] = [Body]

>

你可以考虑使用多种设计模式。我将演示一些您甚至不需要使用

[I]
的地方:

累加器:

messages = []
for feedItem in feed['items']:
    message = {'title':..., ...}
    message['link'] = ...  # alternative
    messages += [message]   # or messages.append(data)

print(messages)
映射(在这样简单的情况下通常是最优雅的解决方案):

发电机:

def makeMessages(feedItems):
    for item in feedItems:
        message = {'title':..., ...}
        yield message

messages = list( makeMessages(feed['items']) )

不相关附录: 你甚至可以考虑为你的消息制作一个类:

class Message(object):
    def __init__(self, title, link, body):
        self.title = title
        self.link = link
        self.body = body

    def __str__(self):
        return ...
    def __repr__(self):
        return self.__str__()

有多种设计模式可以考虑使用。我将演示一些您甚至不需要使用
[I]
的地方:

累加器:

messages = []
for feedItem in feed['items']:
    message = {'title':..., ...}
    message['link'] = ...  # alternative
    messages += [message]   # or messages.append(data)

print(messages)
映射(在这样简单的情况下通常是最优雅的解决方案):

发电机:

def makeMessages(feedItems):
    for item in feedItems:
        message = {'title':..., ...}
        yield message

messages = list( makeMessages(feed['items']) )

不相关附录: 你甚至可以考虑为你的消息制作一个类:

class Message(object):
    def __init__(self, title, link, body):
        self.title = title
        self.link = link
        self.body = body

    def __str__(self):
        return ...
    def __repr__(self):
        return self.__str__()

您可能需要考虑更改<代码>“%s%s%s%s”(MeasAgEdTyle,“\n”,“\n”,MessageLink)<代码>“%s\n\n%s”%(MasaGeTeTLE,MessageLink)< /C>。您可能需要考虑更改<代码>“%s%s%s%s”%(MeasaGeTeLT,\\n),“\n”,MessageLink > <代码> > < > %s\n\n%s(%)(MeasaGeTeLe,MessageLink)。