1

I am trying to generate a list of urls by looping two word lists. I can do it one through f-string but I am not so sure how to do two at the same time. Any suggestion?

tag_names = ['business', 'science', 'technology']
domain_names = ['bbc', 'cnn', 'nytimes']

for domain in domain_names:
    print(f'www.{domain}.com/{tag}')

Expected result

www.bbc.com/business
www.bbc.com/science
www.bbc.com/technology
www.cnn.com/business
www.cnn.com/science
www.cnn.com/technology
www.nytimes.com/business
www.nytimes.com/science
www.nytimes.com/technology
Sunderam Dubey
  • 1
  • 11
  • 20
  • 40
codedancer
  • 1,504
  • 9
  • 20

3 Answers3

4

You can use itertools.product and a list comprehension:

import itertools

tag_names = ['business', 'science', 'technology']
domain_names = ['bbc', 'cnn', 'nytimes']

[f'www.{domain}.com/{tag}' for domain, tag in itertools.product(domain_names, tag_names)]

output:

['www.bbc.com/business',
 'www.bbc.com/science',
 'www.bbc.com/technology',
 'www.cnn.com/business',
 'www.cnn.com/science',
 'www.cnn.com/technology',
 'www.nytimes.com/business',
 'www.nytimes.com/science',
 'www.nytimes.com/technology']
Sunderam Dubey
  • 1
  • 11
  • 20
  • 40
mozway
  • 194,879
  • 13
  • 39
  • 75
2

Or use a nested loop:

tag_names = ['business', 'science', 'technology']
domain_names = ['bbc', 'cnn', 'nytimes']

print([f'www.{domain}.com/{tag}' for domain in domain_names for tag in tag_names])

Output:

['www.bbc.com/business',
 'www.bbc.com/science',
 'www.bbc.com/technology',
 'www.cnn.com/business',
 'www.cnn.com/science',
 'www.cnn.com/technology',
 'www.nytimes.com/business',
 'www.nytimes.com/science',
 'www.nytimes.com/technology']
U13-Forward
  • 69,221
  • 14
  • 89
  • 114
0
res=zip(tag_names,domain_names)
for i in res:
    print(f'www.{i[1]}.com/{i[0]}')
Saravanan G
  • 581
  • 1
  • 9
  • 26