# Pulling data from multiple excel files in Python [closed]

I understand this code is running properly and is grabbing from each excel file individually, but I want to create a for loop for using this data across multiple excel files

kinematic_viscosity = []

kinematic_viscosity_1= []

kinematic_viscosity_2= []
#*empty arrays for creating after loop in completed*
for dynamic_viscosity in DV:
kinematic_viscosities = dynamic_viscosity/Density_PE_298k
kinematic_viscosity.append(kinematic_viscosities)

for dynamic_viscosity_1 in DV_1:

kinematic_viscosities_1 = dynamic_viscosity_1/Density_PE_298k
kinematic_viscosity_1.append(kinematic_viscosities_1)
#second loop
for dynamic_viscosity_2 in DV_2:

kinematic_viscosities_2 = dynamic_viscosity_2/Density_PE_298k
kinematic_viscosity_2.append(kinematic_viscosities_2)
#third loop


One possible solution is using zip(). This allows you to iterate, in your case, through multiple lists at a time. You can also condense creating the lists into one line. And, you can remove assigning dynamic_viscosity_#/Density_PE_298k to a variable, just append that to the lists. Consider the following:

kinematic_viscosity, kinematic_viscosity_1, kinematic_viscosity_2 = [], [], []

for dynamic_viscosity, dynamic_viscosity_1, dynamic_viscosity_2 in zip(DV, DV_1, DV_2):
kinematic_viscosity.append(dynamic_viscosity/Density_PE_298k)
kinematic_viscosity_1.append(dynamic_viscosity_1/Density_PE_298k)
kinematic_viscosity_2.append(dynamic_viscosity_2/Density_PE_298k)


While it looks more blocky, it allows you to only loop through the lists once.

Another solution is to keep the three loops, but append the returns directly into the list. Consider the following:

kinematic_viscosity = [dynamic_viscosity/Density_PE_298k for dynamic_viscosity in DV]

kinematic_viscosity_1= [dynamic_viscosity_1/Density_PE_298k for dynamic_viscosity_1 in DV_1]

kinematic_viscosity_2= [dynamic_viscosity_2/Density_PE_298k for dynamic_viscosity_2 in DV_2]

• Thank you! worked! – Jacob Saxinger Sep 18 '19 at 15:08