【问题标题】:Prepend prefix to list elements with list comprehension使用列表理解为列表元素添加前缀
【发布时间】:2011-03-20 20:11:36
【问题描述】:

有一个这样的列表:

['foo','spam','bar']

是否有可能使用列表推导来获得此列表作为结果?

['foo','ok.foo', 'spam', 'ok.spam', 'bar', 'ok.bar']

【问题讨论】:

  • 这是一个“列表理解”,而不是“理解列表”;)
  • “附加前缀”是矛盾的,应该是前置/前缀
  • 天啊,你们太苛刻了

标签: python list-comprehension


【解决方案1】:

使用列表推导式,您是在创建新列表,而不是将元素附加到现有列表(这可能与非常大的数据集相关)

为什么它必须是列表推导式?仅仅因为 python 有它们并不意味着使用 for 循环是不好的编码习惯。

【讨论】:

    【解决方案2】:
    In [67]: alist = ['foo','spam', 'bar']
    
    In [70]: [prefix+elt for elt in alist for prefix in ('','ok.') ]
    Out[70]: ['foo', 'ok.foo', 'spam', 'ok.spam', 'bar', 'ok.bar']
    

    【讨论】:

    • 谢谢你。我使用完全相同的想法用空列表元素填充列表,如下所示: [[]] + [empty+[] for char in [[i] for i in range(len(text))] for empty in (char,[])] 会产生如下列表:[[],[i],[],[o],[],[u],[]]。因此,如果有人感兴趣,这不仅仅是创建串联字符串列表。
    猜你喜欢
    • 2021-09-26
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 2023-04-02
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多