Is there a way I can simplify the long for loop I have in my example with a few nested for loops? I’m writing to a CSV in the long loop.
Here’s the long loop with:
int_1 = 1
int_2 = 2
interface = 41
for i in range(1, 5):
# t2-a-1
writer.writerow(
[
f"t2-a-1 Twe1/0/{int_1}",
f"t1-a-{i} Twe1/0/{interface}",
]
)
writer.writerow(
[
f"t2-a-1 Twe1/0/{int_2}",
f"t1-a-{i} Twe1/0/{interface + 1}",
]
)
# t2-a-2
writer.writerow(
[
f"t2-a-2 Twe1/0/{int_1}",
f"t1-a-{i} Twe1/0/{interface + 2}",
]
)
writer.writerow(
[
f"t2-a-2 Twe1/0/{int_2}",
f"t1-a-{i} Twe1/0/{interface + 3}",
]
)
# t2-a-3
writer.writerow(
[
f"t2-a-3 Twe1/0/{int_1}",
f"t1-a-{i} Twe1/0/{interface + 4}",
]
)
writer.writerow(
[
f"t2-a-3 Twe1/0/{int_2}",
f"t1-a-{i} Twe1/0/{interface + 5}",
]
)
# t2-a-4
writer.writerow(
[
f"t2-a-4 Twe1/0/{int_1}",
f"t1-a-{i} Twe1/0/{interface + 6}",
]
)
writer.writerow(
[
f"t2-a-4 Twe1/0/{int_2}",
f"t1-a-{i} Twe1/0/{interface + 7}",
]
)
int_1 += 2
int_2 += 2
The output that I need should look like this:
t2-a-1 Twe1/0/1,t1-a-1 Twe1/0/41
t2-a-1 Twe1/0/2,t1-a-1 Twe1/0/42
t2-a-1 Twe1/0/3,t1-a-2 Twe1/0/41
t2-a-1 Twe1/0/4,t1-a-2 Twe1/0/42
t2-a-1 Twe1/0/5,t1-a-3 Twe1/0/41
t2-a-1 Twe1/0/6,t1-a-3 Twe1/0/42
t2-a-1 Twe1/0/7,t1-a-4 Twe1/0/41
t2-a-1 Twe1/0/8,t1-a-4 Twe1/0/42
t2-a-2 Twe1/0/1,t1-a-1 Twe1/0/43
t2-a-2 Twe1/0/2,t1-a-1 Twe1/0/44
t2-a-2 Twe1/0/3,t1-a-2 Twe1/0/43
t2-a-2 Twe1/0/4,t1-a-2 Twe1/0/44
t2-a-2 Twe1/0/5,t1-a-3 Twe1/0/43
t2-a-2 Twe1/0/6,t1-a-3 Twe1/0/44
t2-a-2 Twe1/0/7,t1-a-4 Twe1/0/43
t2-a-2 Twe1/0/8,t1-a-4 Twe1/0/44
t2-a-3 Twe1/0/1,t1-a-1 Twe1/0/45
t2-a-3 Twe1/0/2,t1-a-1 Twe1/0/46
t2-a-3 Twe1/0/3,t1-a-2 Twe1/0/45
t2-a-3 Twe1/0/4,t1-a-2 Twe1/0/46
t2-a-3 Twe1/0/5,t1-a-3 Twe1/0/45
t2-a-3 Twe1/0/6,t1-a-3 Twe1/0/46
t2-a-3 Twe1/0/7,t1-a-4 Twe1/0/45
t2-a-3 Twe1/0/8,t1-a-4 Twe1/0/46
t2-a-4 Twe1/0/1,t1-a-1 Twe1/0/47
t2-a-4 Twe1/0/2,t1-a-1 Twe1/0/48
t2-a-4 Twe1/0/3,t1-a-2 Twe1/0/47
t2-a-4 Twe1/0/4,t1-a-2 Twe1/0/48
t2-a-4 Twe1/0/5,t1-a-3 Twe1/0/47
t2-a-4 Twe1/0/6,t1-a-3 Twe1/0/48
t2-a-4 Twe1/0/7,t1-a-4 Twe1/0/47
t2-a-4 Twe1/0/8,t1-a-4 Twe1/0/48
This is what I’ve tried, but it needs some tweaking:
int_1 = 1
int_2 = 2
interface = 41
for i in range(1, 5):
for j in range(8):
if j % 2 == 0:
thisint = int_1
else:
thisint = int_2
print(f"t2-a-1 Twe1/0/{thisint},t1-a-{i} Twe1/0/{interface + j}")
int_1 += 2
int_2 += 2
Which produces:
t2-a-1 Twe1/0/1,t1-a-1 Twe1/0/41
t2-a-1 Twe1/0/2,t1-a-1 Twe1/0/42
t2-a-1 Twe1/0/1,t1-a-1 Twe1/0/43
t2-a-1 Twe1/0/2,t1-a-1 Twe1/0/44
t2-a-1 Twe1/0/1,t1-a-1 Twe1/0/45
t2-a-1 Twe1/0/2,t1-a-1 Twe1/0/46
t2-a-1 Twe1/0/1,t1-a-1 Twe1/0/47
t2-a-1 Twe1/0/2,t1-a-1 Twe1/0/48
t2-a-2 Twe1/0/3,t1-a-2 Twe1/0/41
t2-a-2 Twe1/0/4,t1-a-2 Twe1/0/42
t2-a-2 Twe1/0/3,t1-a-2 Twe1/0/43
t2-a-2 Twe1/0/4,t1-a-2 Twe1/0/44
t2-a-2 Twe1/0/3,t1-a-2 Twe1/0/45
t2-a-2 Twe1/0/4,t1-a-2 Twe1/0/46
t2-a-2 Twe1/0/3,t1-a-2 Twe1/0/47
t2-a-2 Twe1/0/4,t1-a-2 Twe1/0/48
t2-a-3 Twe1/0/5,t1-a-3 Twe1/0/41
t2-a-3 Twe1/0/6,t1-a-3 Twe1/0/42
t2-a-3 Twe1/0/5,t1-a-3 Twe1/0/43
t2-a-3 Twe1/0/6,t1-a-3 Twe1/0/44
t2-a-3 Twe1/0/5,t1-a-3 Twe1/0/45
t2-a-3 Twe1/0/6,t1-a-3 Twe1/0/46
t2-a-3 Twe1/0/5,t1-a-3 Twe1/0/47
t2-a-3 Twe1/0/6,t1-a-3 Twe1/0/48
t2-a-4 Twe1/0/7,t1-a-4 Twe1/0/41
t2-a-4 Twe1/0/8,t1-a-4 Twe1/0/42
t2-a-4 Twe1/0/7,t1-a-4 Twe1/0/43
t2-a-4 Twe1/0/8,t1-a-4 Twe1/0/44
t2-a-4 Twe1/0/7,t1-a-4 Twe1/0/45
t2-a-4 Twe1/0/8,t1-a-4 Twe1/0/46
t2-a-4 Twe1/0/7,t1-a-4 Twe1/0/47
t2-a-4 Twe1/0/8,t1-a-4 Twe1/0/48
How can I tweak the simplified code to do what I want?
>Solution :
Given your output, you could maybe use:
interface = 41
for i in range(4):
for j in range(8):
print(f't2-a-{i+1} Twe1/0/{j+1},t1-a-{j//2+1} Twe1/0/{interface+2*i+j%2}')
NB. using print for quick reproducibility here, replace with writer.writerow in your context.
Output:
t2-a-1 Twe1/0/1,t1-a-1 Twe1/0/41
t2-a-1 Twe1/0/2,t1-a-1 Twe1/0/42
t2-a-1 Twe1/0/3,t1-a-2 Twe1/0/41
t2-a-1 Twe1/0/4,t1-a-2 Twe1/0/42
t2-a-1 Twe1/0/5,t1-a-3 Twe1/0/41
t2-a-1 Twe1/0/6,t1-a-3 Twe1/0/42
t2-a-1 Twe1/0/7,t1-a-4 Twe1/0/41
t2-a-1 Twe1/0/8,t1-a-4 Twe1/0/42
t2-a-2 Twe1/0/1,t1-a-1 Twe1/0/43
t2-a-2 Twe1/0/2,t1-a-1 Twe1/0/44
t2-a-2 Twe1/0/3,t1-a-2 Twe1/0/43
t2-a-2 Twe1/0/4,t1-a-2 Twe1/0/44
t2-a-2 Twe1/0/5,t1-a-3 Twe1/0/43
t2-a-2 Twe1/0/6,t1-a-3 Twe1/0/44
t2-a-2 Twe1/0/7,t1-a-4 Twe1/0/43
t2-a-2 Twe1/0/8,t1-a-4 Twe1/0/44
t2-a-3 Twe1/0/1,t1-a-1 Twe1/0/45
t2-a-3 Twe1/0/2,t1-a-1 Twe1/0/46
t2-a-3 Twe1/0/3,t1-a-2 Twe1/0/45
t2-a-3 Twe1/0/4,t1-a-2 Twe1/0/46
t2-a-3 Twe1/0/5,t1-a-3 Twe1/0/45
t2-a-3 Twe1/0/6,t1-a-3 Twe1/0/46
t2-a-3 Twe1/0/7,t1-a-4 Twe1/0/45
t2-a-3 Twe1/0/8,t1-a-4 Twe1/0/46
t2-a-4 Twe1/0/1,t1-a-1 Twe1/0/47
t2-a-4 Twe1/0/2,t1-a-1 Twe1/0/48
t2-a-4 Twe1/0/3,t1-a-2 Twe1/0/47
t2-a-4 Twe1/0/4,t1-a-2 Twe1/0/48
t2-a-4 Twe1/0/5,t1-a-3 Twe1/0/47
t2-a-4 Twe1/0/6,t1-a-3 Twe1/0/48
t2-a-4 Twe1/0/7,t1-a-4 Twe1/0/47
t2-a-4 Twe1/0/8,t1-a-4 Twe1/0/48