-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathskyline.py
104 lines (87 loc) · 2.44 KB
/
skyline.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import sys
def scan(file):
firsttime=0
while True:
field = next(file).split(",")
field = [f.strip() for f in field]
if(firsttime!=0):
for i in range(3,8):
field[i]=float(field[i])
firsttime=1
yield field
def file_len(fname):
with open(fname) as f:
for i, l in enumerate(f):
pass
return i + 1
def dominationarray(player,stats):
scorearray = []
for stat in stats:
stat+=2
if(stat==3):
trb = player[3]
scorearray.append(trb)
elif(stat==4):
ast = player[4]
scorearray.append(ast)
elif(stat==5):
stl = player[5]
scorearray.append(stl)
elif(stat==6):
blk = player[6]
scorearray.append(blk)
elif(stat==7):
pts = player[7]
scorearray.append(pts)
return scorearray
def dominates(player1,player2):
dominates=False
nodominance=False
for i in range(0,len(player1[-1])):
if(player1[-1][i]>player2[-1][i]):
dominates=True
if(player1[-1][i]<player2[-1][i]):
nodominance=True
if(dominates==True and nodominance==False):
return True
else:
return False
def main(argv1):
statsarray = argv1.split(',')
statsarray = [int(stat) for stat in statsarray]
for stat in statsarray:
if stat!=1 and stat!=2 and stat!=3 and stat!=4 and stat!=5:
print "------Error!!! Stat out of range------"
exit(0)
playersfile = open ("2017_ALL.csv","r")
o = []
length = file_len("2017_ALL.csv")-1
parser = scan(playersfile)
W = []
T = []
player = next(parser)
i=0
while(i<length):
player = next(parser)
player.append(dominationarray(player,statsarray))
if(i==0):
W.append(player)
flag = 0
for object in W:
if(dominates(object,player)):
for obj in W:
if(obj==player):
W.remove(obj)
break
else:
for object in W:
if(dominates(player,object)):
W.remove(object)
if(flag!=1):
W.append(player)
flag = 1
i+=1
for skylinePlayer in W:
print skylinePlayer
if __name__ == "__main__":
main(sys.argv[1])