Python 使用不断变化的变量定义列表
我想制作一段代码,从RSS提要中提取标题和链接,并将其编译成一个变量,然后在消息体中使用。我的问题是,每次我从RSS中提取信息时,身体都会被重新定义。我对编程和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
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)。