python基础:元组转字典

  • Post author:
  • Post category:python



元组

:1.使用中括号(())包裹,不可以被更改(尽管他们的内容可以),元组可以看成是 只读 的列表

A. dict.fromkeys(S)

S是一个列表或元组…

将S中的元素作为字典的key,value默认为None,也可以指定一个初始值,代码示例如下:

1

2

3


myDict


=


dict


.fromkeys(


'hello'


,


True


)


for


k


in


myDict.keys():




print


(k, myDict[k])

输出如下:

h True

e True

l True

o True

B. collections.defaultdict([default_factory[,…]])

default_factory指定字典的value类型

1

2

3

4

5

6


>>> s


=


[(


'yellow'


,


1


), (


'blue'


,


2


), (


'yellow'


,


3


), (


'blue'


,


4


), (


'red'


,


1


)]


>>> d


=


defaultdict(


list


)


>>>


for


k, v


in


s:


...     d[k].append(v)


...


>>> d.items()

[(‘blue’, [2, 4]), (‘red’, [1]), (‘yellow’, [1, 3])]

上面代码效率高于下面的等效代码:

1

2

3

4

5


>>> d


=


{}


>>>


for


k, v


in


s:


...     d.setdefault(k, []).append(v)


...


>>> d.items()

[(‘blue’, [2, 4]), (‘red’, [1]), (‘yellow’, [1, 3])]

如果给default_dict传入int,则可以用来计数:

1

2

3

4

5

6


>>> s


=


'mississippi'


>>> d


=


defaultdict(


int


)


>>>


for


k


in


s:


...     d[k]


+


=


1


...


>>> d.items()

[(‘i’, 4), (‘p’, 2), (‘s’, 4), (‘m’, 1)]



版权声明:本文为LLC25802580原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。