【问题标题】:Concat each element of list with each element of second list将列表的每个元素与第二个列表的每个元素连接起来
【发布时间】:2015-08-18 02:50:08
【问题描述】:

我有两个列表['_ru', '_uk', '_en'], ['1','2','3']

如何获得

['1_ru', '1_uk', '1_en', '2_ru', '2_uk', '2_en', '3_ru', '3_uk', '3_en']

一行?

【问题讨论】:

    标签: python list python-2.7


    【解决方案1】:

    您可以使用itertools.product 获取两个列表的笛卡尔积并加入它们,就像这样

    >>> l2, l1 = ['_ru', '_uk', '_en'], ['1','2','3']
    >>> from itertools import product
    >>> ["".join(items) for items in product(l1, l2)]
    ['1_ru', '1_uk', '1_en', '2_ru', '2_uk', '2_en', '3_ru', '3_uk', '3_en']
    

    或者在一行中,使用列表理解

    >>> ["{}{}".format(i1, i2) for i1 in l1 for i2 in l2]
    ['1_ru', '1_uk', '1_en', '2_ru', '2_uk', '2_en', '3_ru', '3_uk', '3_en']
    

    这与对第一个列表中的每个项目迭代第二个列表并累积结果基本相同,像这样

    >>> result = []
    >>> for i1 in l1:
    ...     for i2 in l2:
    ...         result.append("{}{}".format(i1, i2))
    >>> result
    ['1_ru', '1_uk', '1_en', '2_ru', '2_uk', '2_en', '3_ru', '3_uk', '3_en']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 2020-04-18
      • 2019-11-17
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多