【问题标题】:How to combine two lists to get the following desired result containing tuples?如何组合两个列表以获得以下包含元组的所需结果?
【发布时间】:2020-12-26 11:28:26
【问题描述】:

我有两个列表:

a = ['apple', 'mango', 'pear']

b = ['ripe','raw','rotten']

我怎样才能得到以下元组的结果列表:

[(('apple', 'mango', 'pear'), 'ripe'), (('apple', 'mango', 'pear'), 'raw'), (('apple', 'mango', 'pear'), 'rotten')]

【问题讨论】:

  • 这似乎不难,你能告诉我们你的尝试吗?
  • 我尝试使用 itertools 来生产它,如下所示:list(itertools.product(a,b)) 但它打破了列表 a

标签: python list tuples list-manipulation


【解决方案1】:

list(itertools.product(a,b)) 将使用A 中的元素。要将完整列表作为元素,您可以使用嵌套列表,例如:

list(itertools.product([tuple(a)], b)

结果:

[(('apple', 'mango', 'pear'), 'ripe'), (('apple', 'mango', 'pear'), 'raw'), (('apple', 'mango', 'pear'), 'rotten')]

【讨论】:

    【解决方案2】:

    你试过自己解决吗?

    试试这个:-

    c = []
    for i in b:
        c.append((tuple(a), i)) 
    print (c) 
    

    【讨论】:

    • 谢谢 - 我为他们提供的多样性选择了另一个答案。但你的回答也很有帮助。非常感谢。
    【解决方案3】:

    通常的方法是使用列表推导:

    >>> [(tuple(a), x) for x in b]
    [(('apple', 'mango', 'pear'), 'ripe'), (('apple', 'mango', 'pear'), 'raw'), (('apple', 'mango', 'pear'), 'rotten')]
    

    如果它们不必是元组,你也可以使用zip

    >>> list(zip([a]*len(b), b))
    [(['apple', 'mango', 'pear'], 'ripe'), (['apple', 'mango', 'pear'], 'raw'), (['apple', 'mango', 'pear'], 'rotten')]
    

    【讨论】:

    • 谢谢 - 我为他们提供的多样性选择了另一个答案。但你的回答也很有帮助。非常感谢。
    【解决方案4】:

    只用一行试试:

    [(tuple(a), i) for i in b]
    

    输出将是:

    [(('apple', 'mango', 'pear'), 'ripe'),
     (('apple', 'mango', 'pear'), 'raw'),
     (('apple', 'mango', 'pear'), 'rotten')]
    

    【讨论】:

    • 谢谢 - 我为他们提供的多样性选择了另一个答案。但你的回答也很有帮助。非常感谢。
    【解决方案5】:

    你可以试试这个:

    a = ['apple', 'mango', 'pear']
    
    b = ['ripe','raw','rotten']
    
    list=[ ]
    for i in b:
        k=((tuple((tuple(a),i))))
        list.append(k)
    
    print(list)
    

    【讨论】:

      猜你喜欢
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 2020-11-19
      • 2019-12-22
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      • 1970-01-01
      相关资源
      最近更新 更多