【问题标题】:Convert set to a list将集合转换为列表
【发布时间】:2014-01-30 07:46:38
【问题描述】:

我正在做两个列表的集合交集,结果得到一个集合。

temp_set = set([('a', 'p', 'p', 'l','e')])

如果我尝试将其转换为这样的列表

my_list = [list(t) for t in temp_set ]

我得到一个这样的列表列表

[['a', 'p', 'p', 'l','e']]

我什至试过:

my_list = list(temp_set)

但没有得到预期的结果。

我想要的是一个类似的列表

my_list = ['apple']

有什么建议吗?

【问题讨论】:

    标签: python list set


    【解决方案1】:

    使用str.join:

    >>> s = set([('a', 'p', 'p', 'l','e')])
    >>> ''.join(y for x in s for y in x)
    'apple'
    

    或:

    >>> [''.join(x) for x in s]
    ['apple']
    >>> s = set([('w', 'h', 'a', 't'), ('w', 'i', 'l','l')])
    >>> [''.join(x) for x in s]
    ['what', 'will']
    

    【讨论】:

    • 感谢您的回答。如果我有这样的一套怎么办。 set([('w', 'h', 'a', 't'), ('w', 'i', 'l','l')])
    • @user3247054 预期的输出是什么? (请注意,集合没有任何顺序,因此对集合的迭代可能会以任意顺序返回项目)
    • 会是 ['what', 'will'] 等或 [['what'],['will']]。
    • @user3247054 我的第二个解决方案可以很好地处理这个输入。
    • 非常感谢您的帮助。
    【解决方案2】:
    In[30]: reduce(lambda m, n: m+n, list(temp_set)[0])
    Out[30]: 'apple'
    

    【讨论】:

      【解决方案3】:

      这是一个非常奇怪的行:

      temp_set = set([('a', 'p', 'p', 'l','e')])
      

      它从具有单个元素的列表中创建一个集合,元组('a', 'p', 'p', 'l','e')。为什么要增加一个级别?

      set 是具有 独特 元素的数据结构。我认为这与手头的问题无关。

      即使在('w', 'h', 'a', 't'), ('w', 'i', 'l','l') 的情况下,您也可能不想要一个集合,而是一个列表,除非您担心(并且想要消除)重复的单词(也许您会这样做,但不清楚)。一个列表就足够了:

      >>> s = [('w', 'h', 'a', 't'), ('w', 'i', 'l','l')]
      >>> [''.join(x) for x in s]
      ['what', 'will']
      >>> s = [('w', 'h', 'a', 't'), ('w', 'i', 'l','l'), ('w', 'h', 'a', 't')]
      >>> [''.join(x) for x in s]   ### allow duplicates since it's a list
      ['what', 'will', 'what']
      >>> s = set([('w', 'h', 'a', 't'), ('w', 'i', 'l','l'), ('w', 'h', 'a', 't')])
      >>> [''.join(x) for x in s]   ### remove duplicates since it's a set
      ['what', 'will']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-29
        • 2013-12-16
        • 2017-02-06
        • 2022-11-12
        • 2011-08-02
        • 2010-10-09
        • 2011-01-29
        • 2019-05-07
        相关资源
        最近更新 更多