title: Python program not displaying correct info from a file
body: <p>I'm currently having a problem displaying certain elements of file. The file in question looks like this:</p>
  
  <pre><code>SKF Bearing Data for Cylindrical roller bearings, single row (Metric)
  Principal dimensions    Basic load ratings  Fatigue load limit  Speed ratings   Designation
  d[mm]   D[mm]   B[mm]   C[kN]   C0[kN]  Pu[kN]  Ref speed[r/min]    Lim speed[r/min]    Designation bearing
  15  35  11  12.5    10.2    1.22    22000   26000   NJ 202 
  15  35  11  12.5    10.2    1.22    22000   26000   NU 202 
  15  35  11  12.5    10.2    1.22    22000   34000   NU 202 
  17  40  12  20      14.3    1.73    20000   22000   N 203 
  17  40  12  20      14.3    1.73    20000   22000   N 203 
  17  40  12  20      14.3    1.73    20000   22000   NJ 203 
  17  40  12  20      14.3    1.73    20000   22000   NU 203 
  17  40  12  20      14.3    1.73    20000   22000   NUP 203 
  17  40  12  20      14.3    1.73    20000   30000   NJ 203 
  </code></pre>
  
  <p>There are about 200 more rows in this format</p>
  
  <p>I have code in the program that pulls the first 8 columns of numerical data into a list, this list is called 'UserVals' and the last column is a separate variable(col8). col8 contains all the designation bearing and the names are in string format.</p>
  
  <p>The program then asks for the users desired Max(UserMax) and minimum(UserMin) and sorts through the list to find the rows that meet the users criteria</p>
  
  <p>Lastly, 'Cols' finds how many columns of data there is based of the length of UserVals. 'Rows' finds the length of a single column based of the length of the first list in UserVals</p>
  
  <p>The code for this looks like this:</p>
  
  <pre><code>for row in range(Rows): 
          Criteria = True
          for col in range(Cols): 
              Criteria = Criteria and ((UserVals[col][row] &gt;=UserMins[col]) and (UserVals[col][row] &lt;=UserMaxs[col]))
          if Criteria: 
              ThisRow = []
              for col in range(Cols):
                ThisRow.append(UserVals[col][row])
              print(('\t'+'%3.2f\t'*Cols)%tuple(ThisRow), col8[col])
  </code></pre>
  
  <p>The Resulting output is looks like this:</p>
  
  <pre><code>Data Within Chosen Limits:
  d[mm]   D[mm]   B[mm]   C[kN]   C0[kN]  Pu[kN]  Refspeed[r/min]  Limspeed[r/min] Designationbearing
  25.00   62.00   24.00   64.00   55.00   6.95    12000.00        22000.00         NUP 203
  25.00   62.00   24.00   64.00   55.00   6.95    12000.00        22000.00         NUP 203
  25.00   62.00   24.00   64.00   55.00   6.95    12000.00        22000.00         NUP 203
  30.00   62.00   20.00   55.00   49.00   6.10    13000.00        22000.00         NUP 203
  30.00   72.00   19.00   58.50   48.00   6.20    11000.00        19000.00         NUP 203
  30.00   72.00   19.00   58.50   48.00   6.20    11000.00        19000.00         NUP 203
  30.00   72.00   19.00   58.50   48.00   6.20    11000.00        19000.00         NUP 203
  35.00   72.00   17.00   56.00   48.00   6.10    11000.00        18000.00         NUP 203
  35.00   72.00   17.00   56.00   48.00   6.10    11000.00        18000.00         NUP 203
  35.00   72.00   17.00   56.00   48.00   6.10    11000.00        18000.00         NUP 203
  35.00   72.00   23.00   69.50   63.00   8.15    11000.00        18000.00         NUP 203
  35.00   72.00   23.00   69.50   63.00   8.15    11000.00        18000.00         NUP 203
  </code></pre>
  
  <p>The column 'Designation Bearing' is displayed incorrectly and every time no matter what limits are inputted. Weirdly it only displays NUP 203 rather than their respective names. This is where I've hit a roadblock, I currently don't know what is causing the program to print only one element of the file rather than the name of respective bearing. </p>