나는 각 문자열이 단일 단어라고 가정 할 수있는 일련의 문자열 목록으로 구성된 배열을 가지고 있습니다.목록의 동시 발생 수를 계산하십시오.
이 배열에서 단어 쌍을 계산하는 효율적인 방법을 파이썬에서 원합니다.
쌍의 각 단어가 목록의 임의 위치에있을 수 있기 때문에 쌍락 또는 양방향 기호가 아닙니다.
나는 각 문자열이 단일 단어라고 가정 할 수있는 일련의 문자열 목록으로 구성된 배열을 가지고 있습니다.목록의 동시 발생 수를 계산하십시오.
이 배열에서 단어 쌍을 계산하는 효율적인 방법을 파이썬에서 원합니다.
쌍의 각 단어가 목록의 임의 위치에있을 수 있기 때문에 쌍락 또는 양방향 기호가 아닙니다.
목록이 얼마나 그것은, 불분명인가 그것은 뭔가 같은 :
li = ['hello','bye','hi','good','bye','hello']
그래서 해결책은 간단 경우가 같다 그렇지 않은 경우
In [1342]: [i for i in set(li) if li.count(i) > 1]
Out[1342]: ['bye', 'hello']
:
li = [['hello'],['bye','hi','good'],['bye','hello']]
그 다음 :
In [1378]: f = []
In [1379]: for x in li:
.......... for i in x:
.......... f.append(i)
In [1380]: f
Out[1380]: ['hello', 'bye', 'hi', 'good', 'bye', 'hello']
In [1381]: [i for i in set(f) if f.count(i) > 1]
Out[1381]: ['bye', 'hello']
>>> from itertools import chain
>>> from collections import Counter
>>> L = [['foo', 'bar'], ['apple', 'orange', 'mango'], ['bar']]
>>> c = Counter(frozenset(x) for x in combinations(chain.from_iterable(L), r=2))
>>> c
Counter({frozenset(['mango', 'bar']): 2, frozenset(['orange', 'bar']): 2, frozenset(['foo', 'bar']): 2, frozenset(['bar', 'apple']): 2, frozenset(['orange', 'apple']): 1, frozenset(['foo', 'apple']): 1, frozenset(['bar']): 1, frozenset(['orange', 'mango']): 1, frozenset(['foo', 'mango']): 1, frozenset(['mango', 'apple']): 1, frozenset(['orange', 'foo']): 1})
문자열 목록은 파이썬에서 작동하지 않습니다 (필자는 아마도 파이썬 세트를 의미하지는 않습니다.). 예를 보여주십시오. – jamylak
각 목록에 몇 개의 문자열이 있습니까? – gnerkus
귀하의 목록을 보여줄 수 있습니까? –