Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从元组列表中获取每个元组值的所有关系/邻居?_Python_List_Set_Tuples - Fatal编程技术网

Python 如何从元组列表中获取每个元组值的所有关系/邻居?

Python 如何从元组列表中获取每个元组值的所有关系/邻居?,python,list,set,tuples,Python,List,Set,Tuples,我试图从元组列表中获取每个元组值的所有邻居/对 输入: test_list = [(1, 'the'), (1, 'is'), (2, 'best'), (3, 'for'),(1, 'is'), (4, 'CS'), (2,'is'), ('is',3)] 期望输出: {1: {'the','is'}, 2: {'best','is'}, 3: {'for','is'}, 4: {'CS'}, the: {1}, is: {1,2,3}, best: {2}, for: {3}, CS:

我试图从元组列表中获取每个元组值的所有邻居/对

输入:

test_list = [(1, 'the'), (1, 'is'), (2, 'best'), (3, 'for'),(1, 'is'), (4, 'CS'), (2,'is'), ('is',3)] 
期望输出:

 {1: {'the','is'}, 2: {'best','is'}, 3: {'for','is'}, 4: {'CS'}, the: {1}, is: {1,2,3}, best: {2}, for: {3}, CS: {4}}
您可以使用:

输出:

{1: {'is', 'the'}, 'the': {1}, 'is': {1, 2, 3}, 2: {'is', 'best'}, 'best': {2}, 3: {'for', 'is'}, 'for': {3}, 4: {'CS'}, 'CS': {4}}
如果不能使用
defaultdict
,则只需将其替换为与普通
dict
等效的If语句:

result = dict()
...
    if k not in result:
        result[k] = set()
    result[k].add(v)
    if v not in result:
        result[v] = set()
    result[v].add(k)
您可以使用:

输出:

{1: {'is', 'the'}, 'the': {1}, 'is': {1, 2, 3}, 2: {'is', 'best'}, 'best': {2}, 3: {'for', 'is'}, 'for': {3}, 4: {'CS'}, 'CS': {4}}
如果不能使用
defaultdict
,则只需将其替换为与普通
dict
等效的If语句:

result = dict()
...
    if k not in result:
        result[k] = set()
    result[k].add(v)
    if v not in result:
        result[v] = set()
    result[v].add(k)

它应该是test_list=[(1,'the'),(1,'is'),(2,'best'),(3,'for'),(1,'is'),(4,'CS'),(2,'is'),(3,'is')]而不是,对吧?不,它的('is',3)应该是test_list=[(1,'the'),(1,'best'),(3,'for'),(1,'is'),(4,'CS'),(2,'is'),(3,'is'),对吧?不,它的('is',谢谢,但还有其他方法吗?我被限制不使用defaultdict,很抱歉之前没有提到它。我尝试过其他方法,但它的工作方式与deafultdict test_list.sort(key=itemgetter(0))res=dict((k,[v[1]表示itr中的v])表示k,itr表示groupby(test_list,itemgetter(0))表示test_list.sort(key=itemgetter(1))表示res.update(dict((k,[v[0]对于itr中的v])对于k,在groupby中的itr(test_list,itemgetter(1)))用正常的dict选项anks编辑,但是还有其他方法吗?我被限制不使用defaultdict,很抱歉之前没有提到它。我尝试过其他方法,但它不像deafltdict test_list.sort(key=itemgetter)那样工作(0)res=dict((k,[v[1]表示itr中的v])for k,itr in groupby(test_list,itemgetter(0)))test_list.sort(key=itemgetter(1))res.update(dict((k,[v[0]表示itr中的v])for k,itr in groupby(test_list,itemgetter(1)),用普通dict选项编辑