Blogger Information
Blog 41
fans 0
comment 1
visits 40515
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
Python高效编程技巧实战(11)
yeyiluLAMP
Original
767 people have browsed it

snipaste20171005_122929.png

python中的字典是无序性的,使用标准库collections中的OrderedDict,使字典具备有序性

In [1]: d = {}

In [2]: d['Jim'] = (1,30)

In [3]: d['Leo'] = (2,40)

In [4]: d['Bob'] = (3,43)

In [5]: d
Out[5]: {'Leo': (2, 40), 'Bob': (3, 43), 'Jim': (1, 30)}

In [6]: for x in d: print(x)
Leo
Bob
Jim

In [7]: for x in d: print(x)
Leo
Bob
Jim

In [8]: from collections import OrderedDict

In [9]: d = OrderedDict()

In [10]: d
Out[10]: OrderedDict()

In [11]: for x in d: print(x)

In [12]: d['Jim'] = (1,30)

In [13]: d['Leo'] = (2,40)

In [14]: d['Bob'] = (3,43)

In [15]: for x in d: print(x)
Jim
Leo
Bob

In [16]: d
Out[16]: OrderedDict([('Jim', (1, 30)), ('Leo', (2, 40)), ('Bob', (3, 43))])




 vim orderdict.py


 1    from time import time
 2    from random import randint
 3    from collections import OrderedDict
 4    
 5    d = OrderedDict()
 6    player = list('ABCDEFGH')
 7    start = time()
 8    
 9    for i in range(len(player)):
10        input()
11        p = player.pop(randint(0,7 - i))
12        end = time()
13        print(i + 1,p,end - start,)
14        d[p] = (i + 1,end -start)
15    
16    print()
17    print('*' * 20)
18    for k,v in d.items():
19        print(k,v) 
20



In [45]: !python3 orderdict.py

1 G 0.7850325107574463

2 E 1.2250711917877197

3 C 1.6086609363555908

4 A 1.9764859676361084

5 B 2.3427579402923584

6 D 2.703601837158203

7 F 3.3351752758026123

8 H 3.8562939167022705

********************
G (1, 0.7850325107574463)
E (2, 1.2250711917877197)
C (3, 1.6086609363555908)
A (4, 1.9764859676361084)
B (5, 2.3427579402923584)
D (6, 2.703601837158203)
F (7, 3.3351752758026123)
H (8, 3.8562939167022705)


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post