here’s the code:
Tips how to simplify the code are welcome
eqlCounter = 0
octals = []
with open("D:maturaMatura2017Dane_PR2liczby.txt", "r") as f: #file contains 2 sets of numbers(1st decimal, second octal)
for x in f:
lines = f.readline()
splited = lines.split()
toInt = int(splited[1], 8) #oct to int(dec)
octals.append(toInt)
if int(splited[0]) == toInt:
eqlCounter += 1
print("same nmbrs: ", eqlCounter) #a
print("min: ", min(octals),"at: ")
print("max: ", max(octals),"at: ")
I would like to find a position of the line that contains the max value(already found that value) I know i can just use another loop to find the placement, but i wonder if there’s a shorter and more efficient way to do it
Advertisement
Answer
There’s a method to find the position of a value in an iterable: index.
low = min(octals)
print("min: ", low ,"at: ", octals.index(low))
Another possibility is to track the extremes and their positions as you iterate through the file. For instance:
low = 99999999999999999999999999999999999999999999999999
with ...
for idx, x in enumerate(f):
if toInt < low:
low = toInt
low_pos = idx
Treat the high element similarly.