计算元组中的唯一字符串,Python

计算元组中的唯一字符串,Python,python,tuples,Python,Tuples,我试图计算元组中的唯一字符串,并在列表中仅输出唯一字符串及其计数。我尝试使用列表组件,但遇到一些问题: def tupleTag(inputList): from collections import Counter c = Counter(inputList[0] for inputList in inputList) print set(inputList[0], c) inputList = [('love','family'),('dinner','famil

我试图计算元组中的唯一字符串,并在列表中仅输出唯一字符串及其计数。我尝试使用列表组件,但遇到一些问题:

def tupleTag(inputList):
    from collections import Counter

    c = Counter(inputList[0] for inputList in inputList)
    print set(inputList[0], c)

inputList = [('love','family'),('dinner','family','nomnom'),('wedding','romance','love')]
tupleTag(inputList)      
正确的输出是=

[(love,2), (family,2)]

您似乎在正确的轨道上使用
集合。计数器
。我还会加入一个
itertools.chain

items = itertools.chain.from_iterable(inputList)
counts = collections.Counter(items)
现在,您有了一个项目的地图,显示了项目出现的次数。如果您想要一个元组的排序列表,其形式为
(,)
,您可以使用该方法——当然,您可以对其进行筛选,以仅查找重复的字符串及其计数:

repeated_items = [(key, count) for key, count in counts.most_common() if count > 1]
注意,您实际上不需要使用
最常见的
来过滤项目,但它会按项目的常见程度给出结果。如果这不是必需的,则在项目上进行简单的循环将更有效:

repeated_items = [(key, count) for key, count in counts.items() if count > 1]

您似乎在正确的轨道上使用
集合。计数器
。我还会加入一个
itertools.chain

items = itertools.chain.from_iterable(inputList)
counts = collections.Counter(items)
现在,您有了一个项目的地图,显示了项目出现的次数。如果您想要一个元组的排序列表,其形式为
(,)
,您可以使用该方法——当然,您可以对其进行筛选,以仅查找重复的字符串及其计数:

repeated_items = [(key, count) for key, count in counts.most_common() if count > 1]
注意,您实际上不需要使用
最常见的
来过滤项目,但它会按项目的常见程度给出结果。如果这不是必需的,则在项目上进行简单的循环将更有效:

repeated_items = [(key, count) for key, count in counts.items() if count > 1]

您似乎在正确的轨道上使用
集合。计数器
。我还会加入一个
itertools.chain

items = itertools.chain.from_iterable(inputList)
counts = collections.Counter(items)
现在,您有了一个项目的地图,显示了项目出现的次数。如果您想要一个元组的排序列表,其形式为
(,)
,您可以使用该方法——当然,您可以对其进行筛选,以仅查找重复的字符串及其计数:

repeated_items = [(key, count) for key, count in counts.most_common() if count > 1]
注意,您实际上不需要使用
最常见的
来过滤项目,但它会按项目的常见程度给出结果。如果这不是必需的,则在项目上进行简单的循环将更有效:

repeated_items = [(key, count) for key, count in counts.items() if count > 1]

您似乎在正确的轨道上使用
集合。计数器
。我还会加入一个
itertools.chain

items = itertools.chain.from_iterable(inputList)
counts = collections.Counter(items)
现在,您有了一个项目的地图,显示了项目出现的次数。如果您想要一个元组的排序列表,其形式为
(,)
,您可以使用该方法——当然,您可以对其进行筛选,以仅查找重复的字符串及其计数:

repeated_items = [(key, count) for key, count in counts.most_common() if count > 1]
注意,您实际上不需要使用
最常见的
来过滤项目,但它会按项目的常见程度给出结果。如果这不是必需的,则在项目上进行简单的循环将更有效:

repeated_items = [(key, count) for key, count in counts.items() if count > 1]

mgilson的回答非常圆滑,值得研究。以下是使用理解的花园品种方法:

tups   = ...  # Your data.
c      = Counter(x for tup in tups for x in tup)
result = [(k, n) for k, n in c.items() if n > 1]

mgilson的回答非常圆滑,值得研究。以下是使用理解的花园品种方法:

tups   = ...  # Your data.
c      = Counter(x for tup in tups for x in tup)
result = [(k, n) for k, n in c.items() if n > 1]

mgilson的回答非常圆滑,值得研究。以下是使用理解的花园品种方法:

tups   = ...  # Your data.
c      = Counter(x for tup in tups for x in tup)
result = [(k, n) for k, n in c.items() if n > 1]

mgilson的回答非常圆滑,值得研究。以下是使用理解的花园品种方法:

tups   = ...  # Your data.
c      = Counter(x for tup in tups for x in tup)
result = [(k, n) for k, n in c.items() if n > 1]


什么是唯一字符串?根据我对unique的理解,在你的
输入列表中有更多的unique字符串,比如
晚餐
名字
,等等。似乎你所说的unique是指其他东西,如果是,请明确定义。我想疯子指的是重复字符串。@huey yup,我的意思是重复字符串。@AnandSKumar我的意思是重复字符串,就像族重复两次一样,所以我想计算这些字符串并返回一个元组作为族的计数。什么是唯一字符串?根据我对unique的理解,在你的
输入列表中有更多的unique字符串,比如
晚餐
名字
,等等。似乎你所说的unique是指其他东西,如果是,请明确定义。我想疯子指的是重复字符串。@huey yup,我的意思是重复字符串。@AnandSKumar我的意思是重复字符串,就像族重复两次一样,所以我想计算这些字符串并返回一个元组作为族的计数。什么是唯一字符串?根据我对unique的理解,在你的
输入列表中有更多的unique字符串,比如
晚餐
名字
,等等。似乎你所说的unique是指其他东西,如果是,请明确定义。我想疯子指的是重复字符串。@huey yup,我的意思是重复字符串。@AnandSKumar我的意思是重复字符串,就像族重复两次一样,所以我想计算这些字符串并返回一个元组作为族的计数。什么是唯一字符串?根据我对unique的理解,在你的
输入列表中有更多的unique字符串,比如
晚餐
名字
,等等。似乎你所说的unique是指其他东西,如果是,请明确定义。我想疯子指的是重复字符串。@huey yup,我的意思是重复字符串。@AnandSKumar我的意思是重复字符串,就像family重复两次一样,所以我想计算这些字符串并返回一个元组作为family的计数。您所说的有道理,但不熟悉itertools.chainLink:
[itertools.chain](https://docs.python.org/3.4/library/itertools.html#itertools.chain)
。您所说的有道理,但不熟悉itertools.chainLink:
[itertools.chain](https://docs.python.org/3.4/library/itertools.html#itertools.chain)
。您所说的有道理,但不熟悉itertools.chainLink:
[itertools.chain](https://docs.python.org/3.4/library/itertools.html#itertools.chain)
。您所说的有道理,但不熟悉itertools.chainLink:
[itertools.chain](https://docs.python.org/3.4/library/itertools.html#itertools.chain)
。k如何表示我们在变量c中计算的字符串?@madman迭代