从列表中创建2元组

时间:2018-03-14 09:55:46

标签: python list pandas tuples

我需要从Python中的列表生成2元组,这样,在元组(a,b)a!=b中,如果已生成元组(a,b),则跳过生成{ {1}}。

这是我写的东西。它有助于达到目的。

但是,当它在大熊猫(b,a)中运行时,运行需要一些时间。

dataframe

我想知道是否有更快的方法来解决问题。

提前致谢!!

更新

我尝试了@ThalishSajeed的解决方案。我将它包含在一个函数中,并且该函数在一个单词列表中作为输入完美地工作。但是,当我尝试在包含单词列表的pandas def tuplize(word_list): tuple_list = [] if len(word_list) == 1: return None else: for i in range(len(word_list)): for j in range(i+1, len(word_list)): a = tuple([word_list[i], word_list[j]]) tuple_list.append(a) return tuple_list 上应用它时。

这是我的功能,

Series

我传递单个列表(def tuplize_faster(word_list): if len(word_list) <= 1: return None else: ret_object = itertools.combinations(word_list, 2) return [tuple(i) for i in ret_object] )的结果是,

tuplize_faster(['Zero', 'rating', 'worst', 'service'])

在包含单词列表

的pandas [('Zero', 'rating'), ('Zero', 'worst'), ('Zero', 'service'), ('rating', 'worst'), ('rating', 'service'), ('worst', 'service')] 上应用相同的功能
Series

给出了这个结果。

df_preprocessed['tuples'] = df_preprocessed.lemma_corrected.apply(lambda x: tuplize_faster(x)) 

我使用 [('[', "'"), ('[', 'Z'), ('[', 'e'), ('[', 'r'), ('[', 'o'), ('[', "'"), ('[', ','), ('[', ' '), ('[', "'"), ('[', 'r'), ('[', 'a'), ('[', 't'), ('[', 'i'), ('[', 'n'), ('[', 't'), ('[', "'"), ('[', ','), ('[', ' '), ('[', "'"), ('[', 'w'), ('[', 'o'), ('[', 'r'), ('[', 's'), ('[', 't'), ('[', "'"), ('[', ','), ('[', ' '), ('[', "'"), ('[', 's'), ('[', 'e'), ('[', 'r'), ('[', 'v'), ('[', 'i'), ('[', 'c'), ('[', 'e'), ('[', "'"), ('[', ']'), ("'", 'Z'), ("'", 'e'), ("'", 'r'), ("'", 'o'), ("'", "'"), ("'", ','), ("'", ' '), ("'", "'"), ("'", 'r'), ("'", 'a'), ("'", 't'), ("'", 'i'), ("'", 'n'), ("'", 't'), ("'", "'"), ("'", ','), ("'", ' '), ("'", "'"), ("'", 'w'), ("'", 'o'), ("'", 'r'), ("'", 's'), ("'", 't'), ("'", "'"), ("'", ','), ("'", ' '), ("'", "'"), ("'", 's'), ("'", 'e'), ("'", 'r'), ("'", 'v'), ("'", 'i'), ("'", 'c'), ("'", 'e'), ("'", "'"), ("'", ']'), ('Z', 'e'), ('Z', 'r'), ('Z', 'o'), ('Z', "'"), ('Z', ','), ('Z', ' '), ('Z', "'"), ('Z', 'r'), ('Z', 'a'), ('Z', 't'), ('Z', 'i'), ('Z', 'n'), ('Z', 't'), ('Z', "'"), ('Z', ','), ('Z', ' '), ('Z', "'"), ('Z', 'w'), ('Z', 'o'), ('Z', 'r'), ('Z', 's'), ('Z', 't'), ('Z', "'"), ('Z', ','), ('Z', ' '), ('Z', "'"), ('Z', 's'), ('Z', 'e'), ('Z', 'r'), ('Z', 'v'), ('Z', 'i'), ('Z', 'c'), ('Z', 'e'), ('Z', "'"), ('Z', ']'), ('e', 'r'), ('e', 'o'), ('e', "'"), ('e', ','), ('e', ' '), ('e', "'"), ('e', 'r'), ('e', 'a'), ('e', 't'), ('e', 'i'), ('e', 'n'), ('e', 't'), ('e', "'"), ('e', ','), ('e', ' '), ('e', "'"), ('e', 'w'), ('e', 'o'), ('e', 'r'), ('e', 's'), ('e', 't'), ('e', "'"), ('e', ','), ('e', ' '), ('e', "'"), ('e', 's'), ('e', 'e'), ('e', 'r'), ('e', 'v'), ('e', 'i'), ('e', 'c'), ('e', 'e'), ('e', "'"), ('e', ']'), ('r', 'o'), ('r', "'"), ('r', ','), ('r', ' '), ('r', "'"), ('r', 'r'), ('r', 'a'), ('r', 't'), ('r', 'i'), ('r', 'n'), ('r', 't'), ('r', "'"), ('r', ','), ('r', ' '), ('r', "'"), ('r', 'w'), ('r', 'o'), ('r', 'r'), ('r', 's'), ('r', 't'), ('r', "'"), ('r', ','), ('r', ' '), ('r', "'"), ('r', 's'), ('r', 'e'), ('r', 'r'), ('r', 'v'), ('r', 'i'), ('r', 'c'), ('r', 'e'), ('r', "'"), ('r', ']'), ('o', "'"), ('o', ','), ('o', ' '), ('o', "'"), ('o', 'r'), ('o', 'a'), ('o', 't'), ('o', 'i'), ('o', 'n'), ('o', 't'), ('o', "'"), ('o', ','), ('o', ' '), ('o', "'"), ('o', 'w'), ('o', 'o'), ('o', 'r'), ('o', 's'), ('o', 't'), ('o', "'"), ('o', ','), ('o', ' '), ('o', "'"), ('o', 's'), ('o', 'e'), ('o', 'r'), ('o', 'v'), ('o', 'i'), ('o', 'c'), ('o', 'e'), ('o', "'"), ('o', ']'), ("'", ','), ("'", ' '), ("'", "'"), ("'", 'r'), ("'", 'a'), ("'", 't'), ("'", 'i'), ("'", 'n'), ("'", 't'), ("'", "'"), ("'", ','), ("'", ' '), ("'", "'"), ("'", 'w'), ("'", 'o'), ("'", 'r'), ("'", 's'), ("'", 't'), ("'", "'"), ("'", ','), ("'", ' '), ("'", "'"), ("'", 's'), ("'", 'e'), ("'", 'r'), ("'", 'v'), ("'", 'i'), ("'", 'c'), ("'", 'e'), ("'", "'"), ("'", ']'), (',', ' '), (',', "'"), (',', 'r'), (',', 'a'), (',', 't'), (',', 'i'), (',', 'n'), (',', 't'), (',', "'"), (',', ','), (',', ' '), (',', "'"), (',', 'w'), (',', 'o'), (',', 'r'), (',', 's'), (',', 't'), (',', "'"), (',', ','), (',', ' '), (',', "'"), (',', 's'), (',', 'e'), (',', 'r'), (',', 'v'), (',', 'i'), (',', 'c'), (',', 'e'), (',', "'"), (',', ']'), (' ', "'"), (' ', 'r'), (' ', 'a'), (' ', 't'), (' ', 'i'), (' ', 'n'), (' ', 't'), (' ', "'"), (' ', ','), (' ', ' '), (' ', "'"), (' ', 'w'), (' ', 'o'), (' ', 'r'), (' ', 's'), (' ', 't'), (' ', "'"), (' ', ','), (' ', ' '), (' ', "'"), (' ', 's'), (' ', 'e'), (' ', 'r'), (' ', 'v'), (' ', 'i'), (' ', 'c'), (' ', 'e'), (' ', "'"), (' ', ']'), ("'", 'r'), ("'", 'a'), ("'", 't'), ("'", 'i'), ("'", 'n'), ("'", 't'), ("'", "'"), ("'", ','), ("'", ' '), ("'", "'"), ("'", 'w'), ("'", 'o'), ("'", 'r'), ("'", 's'), ("'", 't'), ("'", "'"), ("'", ','), ("'", ' '), ("'", "'"), ("'", 's'), ("'", 'e'), ("'", 'r'), ("'", 'v'), ("'", 'i'), ("'", 'c'), ("'", 'e'), ("'", "'"), ("'", ']'), ('r', 'a'), ('r', 't'), ('r', 'i'), ('r', 'n'), ('r', 't'), ('r', "'"), ('r', ','), ('r', ' '), ('r', "'"), ('r', 'w'), ('r', 'o'), ('r', 'r'), ('r', 's'), ('r', 't'), ('r', "'"), ('r', ','), ('r', ' '), ('r', "'"), ('r', 's'), ('r', 'e'), ('r', 'r'), ('r', 'v'), ('r', 'i'), ('r', 'c'), ('r', 'e'), ('r', "'"), ('r', ']'), ('a', 't'), ('a', 'i'), ('a', 'n'), ('a', 't'), ('a', "'"), ('a', ','), ('a', ' '), ('a', "'"), ('a', 'w'), ('a', 'o'), ('a', 'r'), ('a', 's'), ('a', 't'), ('a', "'"), ('a', ','), ('a', ' '), ('a', "'"), ('a', 's'), ('a', 'e'), ('a', 'r'), ('a', 'v'), ('a', 'i'), ('a', 'c'), ('a', 'e'), ('a', "'"), ('a', ']'), ('t', 'i'), ('t', 'n'), ('t', 't'), ('t', "'"), ('t', ','), ('t', ' '), ('t', "'"), ('t', 'w'), ('t', 'o'), ('t', 'r'), ('t', 's'), ('t', 't'), ('t', "'"), ('t', ','), ('t', ' '), ('t', "'"), ('t', 's'), ('t', 'e'), ('t', 'r'), ('t', 'v'), ('t', 'i'), ('t', 'c'), ('t', 'e'), ('t', "'"), ('t', ']'), ('i', 'n'), ('i', 't'), ('i', "'"), ('i', ','), ('i', ' '), ('i', "'"), ('i', 'w'), ('i', 'o'), ('i', 'r'), ('i', 's'), ('i', 't'), ('i', "'"), ('i', ','), ('i', ' '), ('i', "'"), ('i', 's'), ('i', 'e'), ('i', 'r'), ('i', 'v'), ('i', 'i'), ('i', 'c'), ('i', 'e'), ('i', "'"), ('i', ']'), ('n', 't'), ('n', "'"), ('n', ','), ('n', ' '), ('n', "'"), ('n', 'w'), ('n', 'o'), ('n', 'r'), ('n', 's'), ('n', 't'), ('n', "'"), ('n', ','), ('n', ' '), ('n', "'"), ('n', 's'), ('n', 'e'), ('n', 'r'), ('n', 'v'), ('n', 'i'), ('n', 'c'), ('n', 'e'), ('n', "'"), ('n', ']'), ('t', "'"), ('t', ','), ('t', ' '), ('t', "'"), ('t', 'w'), ('t', 'o'), ('t', 'r'), ('t', 's'), ('t', 't'), ('t', "'"), ('t', ','), ('t', ' '), ('t', "'"), ('t', 's'), ('t', 'e'), ('t', 'r'), ('t', 'v'), ('t', 'i'), ('t', 'c'), ('t', 'e'), ('t', "'"), ('t', ']'), ("'", ','), ("'", ' '), ("'", "'"), ("'", 'w'), ("'", 'o'), ("'", 'r'), ("'", 's'), ("'", 't'), ("'", "'"), ("'", ','), ("'", ' '), ("'", "'"), ("'", 's'), ("'", 'e'), ("'", 'r'), ("'", 'v'), ("'", 'i'), ("'", 'c'), ("'", 'e'), ("'", "'"), ("'", ']'), (',', ' '), (',', "'"), (',', 'w'), (',', 'o'), (',', 'r'), (',', 's'), (',', 't'), (',', "'"), (',', ','), (',', ' '), (',', "'"), (',', 's'), (',', 'e'), (',', 'r'), (',', 'v'), (',', 'i'), (',', 'c'), (',', 'e'), (',', "'"), (',', ']'), (' ', "'"), (' ', 'w'), (' ', 'o'), (' ', 'r'), (' ', 's'), (' ', 't'), (' ', "'"), (' ', ','), (' ', ' '), (' ', "'"), (' ', 's'), (' ', 'e'), (' ', 'r'), (' ', 'v'), (' ', 'i'), (' ', 'c'), (' ', 'e'), (' ', "'"), (' ', ']'), ("'", 'w'), ("'", 'o'), ("'", 'r'), ("'", 's'), ("'", 't'), ("'", "'"), ("'", ','), ("'", ' '), ("'", "'"), ("'", 's'), ("'", 'e'), ("'", 'r'), ("'", 'v'), ("'", 'i'), ("'", 'c'), ("'", 'e'), ("'", "'"), ("'", ']'), ('w', 'o'), ('w', 'r'), ('w', 's'), ('w', 't'), ('w', "'"), ('w', ','), ('w', ' '), ('w', "'"), ('w', 's'), ('w', 'e'), ('w', 'r'), ('w', 'v'), ('w', 'i'), ('w', 'c'), ('w', 'e'), ('w', "'"), ('w', ']'), ('o', 'r'), ('o', 's'), ('o', 't'), ('o', "'"), ('o', ','), ('o', ' '), ('o', "'"), ('o', 's'), ('o', 'e'), ('o', 'r'), ('o', 'v'), ('o', 'i'), ('o', 'c'), ('o', 'e'), ('o', "'"), ('o', ']'), ('r', 's'), ('r', 't'), ('r', "'"), ('r', ','), ('r', ' '), ('r', "'"), ('r', 's'), ('r', 'e'), ('r', 'r'), ('r', 'v'), ('r', 'i'), ('r', 'c'), ('r', 'e'), ('r', "'"), ('r', ']'), ('s', 't'), ('s', "'"), ('s', ','), ('s', ' '), ('s', "'"), ('s', 's'), ('s', 'e'), ('s', 'r'), ('s', 'v'), ('s', 'i'), ('s', 'c'), ('s', 'e'), ('s', "'"), ('s', ']'), ('t', "'"), ('t', ','), ('t', ' '), ('t', "'"), ('t', 's'), ('t', 'e'), ('t', 'r'), ('t', 'v'), ('t', 'i'), ('t', 'c'), ('t', 'e'), ('t', "'"), ('t', ']'), ("'", ','), ("'", ' '), ("'", "'"), ("'", 's'), ("'", 'e'), ("'", 'r'), ("'", 'v'), ("'", 'i'), ("'", 'c'), ("'", 'e'), ("'", "'"), ("'", ']'), (',', ' '), (',', "'"), (',', 's'), (',', 'e'), (',', 'r'), (',', 'v'), (',', 'i'), (',', 'c'), (',', 'e'), (',', "'"), (',', ']'), (' ', "'"), (' ', 's'), (' ', 'e'), (' ', 'r'), (' ', 'v'), (' ', 'i'), (' ', 'c'), (' ', 'e'), (' ', "'"), (' ', ']'), ("'", 's'), ("'", 'e'), ("'", 'r'), ("'", 'v'), ("'", 'i'), ("'", 'c'), ("'", 'e'), ("'", "'"), ("'", ']'), ('s', 'e'), ('s', 'r'), ('s', 'v'), ('s', 'i'), ('s', 'c'), ('s', 'e'), ('s', "'"), ('s', ']'), ('e', 'r'), ('e', 'v'), ('e', 'i'), ('e', 'c'), ('e', 'e'), ('e', "'"), ('e', ']'), ('r', 'v'), ('r', 'i'), ('r', 'c'), ('r', 'e'), ('r', "'"), ('r', ']'), ('v', 'i'), ('v', 'c'), ('v', 'e'), ('v', "'"), ('v', ']'), ('i', 'c'), ('i', 'e'), ('i', "'"), ('i', ']'), ('c', 'e'), ('c', "'"), ('c', ']'), ('e', "'"), ('e', ']'), ("'", ']')] 的方式有问题吗?

1 个答案:

答案 0 :(得分:7)

你试过itertools吗? link to documentation

retObject = itertools.combinations(word_list, 2)

因为你想要2个元组

编辑 - 返回列表

s = [tuple(i) for i in retObject]

编辑表明该方法适用于Pandas系列。

a = pd.Series(['Zero', 'rating', 'worst', 'service'])
tuplize_faster(a)
输出
[('Zero', 'rating'), ('Zero', 'worst'), ('Zero', 'service'), ('rating', 'worst'), ('rating', 'service'), ('worst', 'service')]