是否有更多pythonic方式来填充此列表?

Max*_*fer 4 python list

我想从django查询中清除字符串,以便它可以在latex中使用

items = []
items_to_clean = items.objects.get.all().values()
for dic in items_to_clean:
    items.append(dicttolatex(dic))
Run Code Online (Sandbox Code Playgroud)

这是我完成这项任务的标准方法.这可以通过列表理解以某种方式解决.因为dicttolatex是一个返回字典的函数.

jua*_*nza 8

您可以append使用列表解析避免重复调用:

items = [dicttolatex(dic) for dic in items_to_clean]
Run Code Online (Sandbox Code Playgroud)


The*_*nse 5

您可以使用地图为什么重新发现轮子

样品:

lst=[1,2,3,4]
def add(n):
    return n+n

a=[]
a.extend( map(add,lst))
print a
Run Code Online (Sandbox Code Playgroud)

输出:

[2, 4, 6, 8]
Run Code Online (Sandbox Code Playgroud)

那是你的情况:

items_to_clean = items.objects.get.all().values()
items = map(dicttolatex,items_to_clean)
Run Code Online (Sandbox Code Playgroud)

  • @MaximilianKindshofer`map`还创建了列表,其中的值只有一行.它甚至更短......`items = map(dicttolatex,items_to_clean)` (2认同)
  • @MaximilianKindshofer如果你正在制作一个清单,那么最好是一个更好的问题.当您不一定需要构建列表时,可以在不同的上下文中使用列表推导中使用的生成器表达式.另请参见http://stackoverflow.com/questions/1247486/python-list-comprehension-vs-map.就个人而言,我习惯于列出理解并一直使用它们,但地图似乎仍然更容易阅读,更容易在源代码中搜索. (2认同)