python字典(无序选择键)

2024-10-02 22:31:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于驾驶员有钥匙你知道吗

我的密码是

def insertToDic(dic,comSick):
    for datum in comSick :
            if dic.has_key(datum):
                    dic[datum]+=1
            else :
                    dic[datum] =1

如果昏迷是

comSick=[(A,B),(A,C),(B,A)]

dic将

dic = {(A,B) : 1, (A,C) : 1, (B,A) : 1}

但我想要的是无序键(意思是(A,B)=(B,A))

dic = {(A,B) : 2, (A,C) : 1}  <-- this is what I want

我该怎么办?你知道吗


Tags: keyin密码forifdefelse钥匙
2条回答

试试这个:

def insertToDic(dic,comSick):
    for datum in comSick :
        sorted_datum = tuple(sorted(datum))
        dic[sorted_datum] = dic.get(sorted_datum, 0) + 1

comSick=[('A', 'B'), ('A', 'C'), ('B', 'A')]

dic = {}
insertToDic(dic, comSick)
print(dic)

我做了一些改变。在更新词典之前,我整理了资料。这确保了(A,B)(B,A)中的一个将更改为另一个。不清楚什么是AB,所以B可能低于A。你是说字符串'A''B'吗?我就是这么用的。你知道吗

我也改变了你的增值方式。get()方法将返回当前值(如果存在),或者返回给定的默认值(如果不存在),在本例中为零。你知道吗

还要注意,最后一个字典没有固有的顺序,因此您可能会得到答案{('A', 'C'): 1, ('A', 'B'): 2},这就是我在Anaconda中的python3.5.2中得到的结果。你知道吗

使用

冻结(('A','B'))

作为关键。你知道吗

相关问题 更多 >