Pythonic将字符串列表附加到数组的方法

时间:2011-11-03 04:23:05

标签: python

我是Python新手,来自Java背景。我想知道编写此代码的最Pythonic方式:

entry_list = []
for entry in feed.entry:
    entry_list.append(entry.title.text)

基本上对于Feed中的每个元素,我想将该元素的标题附加到列表中。

我不知道是否应该使用map()或lambda函数或者什么......

由于

3 个答案:

答案 0 :(得分:8)

我能想到的大多数pythonic代码:

entry_list = [entry.title.text for entry in feed.entry]

这是一个list comprehension,它将从feed.entry.title.text中的元素构造一个新列表。

要附加,您需要执行以下操作:

entry_list.extend([entry.title.text for entry in feed.entry])

作为旁注,在进行扩展操作时,通常快generator expression比列表理解慢得多。

答案 1 :(得分:4)

通过一个基因的一点点诡计。

entry_list.extend(x.title.text for x in feed.entry)

如果您不需要保留相同的列表,则只需一个LC。

entry_list = [x.title.text for x in feed.entry]

答案 2 :(得分:3)

始终使用列表理解来表达简洁的表达方式。

entry_list = [entry.title.text for entry in feed.entry]

如果你想对entry_list做的只是再次迭代它,你可以使用生成器表达式

entry_list = (entry.title.text for entry in feed.entry)

请注意,唯一的区别在于使用括号。使用生成器格式时,不会填充entry_list并可以保存内存。你仍然可以做像

这样的事情
for items in entry_list:
    do something

''.join(entry_list)