【问题标题】:Python Combine Elements in one List With All Elements in AnotherPython将一个列表中的元素与另一个列表中的所有元素组合在一起
【发布时间】:2017-05-02 15:25:07
【问题描述】:

给定以下列表:

a = ['a','b']
b = [1,2,3,4]

我想制作这个:

c = ['a1','a2','a3','a4','b1','b2','b3','b4']

所以我基本上想将b的每个元素加入a中的每个元素。

我想要一个类似的方法:

[x+str(y) for x in a and y in b]

提前致谢!

【问题讨论】:

  • c = [x+str(y) for x in a and y in b] 是您在问题中包含的解决方案,您实际要求的是什么?

标签: python string list list-comprehension


【解决方案1】:

您需要在列表推导中迭代两次:

>>> a = ['a','b']
>>> b = [1,2,3,4]

>>> [i+str(j) for i in a for j in b]
['a1', 'a2', 'a3', 'a4', 'b1', 'b2', 'b3', 'b4']

【讨论】:

  • 哈哈,看来你是赢家了;)
  • @HillaryClintonEmailRemover BTW 我喜欢你的名字 :D :D
【解决方案2】:

试试这个,将示例中的 and 替换为 for 以添加额外的循环:

[x + str(y) for x in a for y in b]

这将在单个list comprehension 中循环遍历两个列表。

【讨论】:

    【解决方案3】:
    a = ['a','b']
    b = [1,2,3,4]
    c = [x+str(y) for x in a for y in b]
    print(c)
    

    【讨论】:

    • +0.5 表示您的答案,+0.5 表示您的用户名。
    • 同上,@elethan 的评论:P
    【解决方案4】:
    [str(a1) + str(b1) for a1 in a for b1 in b]
    

    【讨论】:

      【解决方案5】:

      您还可以将列表推导与组合生成混合使用。 Itertools 模块是处理组合的好方法。

      import itertools
      c = [x + str(y) for x, y in itertools.product(a, b)]
      

      【讨论】:

        【解决方案6】:

        这个问题我来得太晚了,但这是我在 python 3.6+ 上做这件事的两分钱

        [f'{a_item}{b_item}' for a_item in a for b_item in b]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-16
          • 2020-06-22
          • 2013-09-25
          • 1970-01-01
          • 1970-01-01
          • 2020-01-27
          相关资源
          最近更新 更多