从python中的列表向不同的集添加元素

时间:2011-12-06 15:20:17

标签: python list set

假设我有一个名为

的列表
mylist = []

此列表包含文件中的句子。我的问题是:

  1. 有没有办法可以将mylist的每个元素添加到不同的集合中?

  2. 如果可以,那么如何添加到不同的设置?

  3. 我的代码:

    mylist = []
    wordlist = open('data.txt', 'r').read().split()
    ngrams = [wordlist[i:i+5] for i in range(len(wordlist)-4)]
    mylist.append(ngrams)
    
    print mylist
    

    一些编辑:

    我的输出看起来像这样

    [('hello', 'there')]
    [("I'm", 'using'), ('using', 'python'), ('python', 'for'), ('for', 'the'),     ('the', 'first'), ('first', 'time.')]
    

    我想要做的是将每个二元组添加到不同的集合中。

3 个答案:

答案 0 :(得分:2)

with open('data.txt', 'r') as f:
    for line in f:
        words = line.split()
        mylist = zip(words, words[1:])
        print mylist

答案 1 :(得分:0)

words = input.split()    
zip(words, words[1:])

答案 2 :(得分:0)

我可能只是误解了你的问题,但......你在尝试这两个中的任何一个吗?

从bigrams创建新集:

>>> li = [("I'm", 'using'), ('using', 'python')]
>>> [set(el) for el in li]
[set(['using', "I'm"]), set(['python', 'using'])]

将bigrams添加到现有集:

>>> sets = [set([1]), set([2])]
>>> sets
[set([1]), set([2])]
>>> [sets[i].add(set_) for i, set_ in enumerate(li)]  #could be expanded in proper loop
[None, None]
>>> sets
[set([1, ("I'm", 'using')]), set([2, ('using', 'python')])]