如何将多个国家/地区的城市合并到一个链表中?
how do I Merge multiple country - cities in a single chain list?
我试图按国家 UA、BE 等顺序将所有城市合并到一个链表中,但是我只得到每个国家城市的单独列表。我使用 itertools
做了以下方法
def crawl(self):
cities = ('AU','BE','CA','CH','CN','CZ','DE','ES','FR','GB','IE','IT','JP','KR','MX','NL','NZ','PL','RO','RU','SE','SG','US')
self.cities = dict()
for city in cities:
city_path = os.path.join(self.SITE_ROOT, 'cities', city)
with open(city_path, 'r') as file:
self.cities[city] = file.read().splitlines()
c = list(itertools.chain.from_iterable(zip(self.cities[city]))) # better.
print(c)
当前输出:
['Moscow', 'St. Petersburg', 'Sochi', 'Nizhny Novgorod', 'Yekaterinburg', 'Krasnodar', 'Tyumen']
['sweden', 'Stockholm', 'Malmø', 'Gothenburg', 'Göteborg', 'Uppsala', 'Solna']
['Singapore', 'Kallang']
['Los Angeles, CA', 'San Jose, CA', 'San Diego, CA', 'San Francisco, CA', 'Austin, TX', 'Dallas, TX', 'Arlington, VA', 'Washington, DC', 'Boston, MA', 'New York, NY', 'Chicago, IL', 'Minneapolis, MN', 'Denver, CO', 'Salt Lake City, UT']
预期输出(单个列表中的所有城市):
['Moscow', 'St. Petersburg', 'Sochi', 'Nizhny Novgorod', 'Yekaterinburg', 'Krasnodar', 'Tyumen','sweden', 'Stockholm', 'Malmø', 'Gothenburg', 'Göteborg', 'Uppsala', 'Solna','Singapore', 'Kallang','Los Angeles, CA', 'San Jose, CA', 'San Diego, CA', 'San Francisco, CA', 'Austin, TX', 'Dallas, TX', 'Arlington, VA', 'Washington, DC', 'Boston, MA', 'New York, NY', 'Chicago, IL', 'Minneapolis, MN', 'Denver, CO', 'Salt Lake City, UT']
只需在开始循环之前将 c
创建为一个空列表,然后将每个国家/地区的单独列表添加到其中 - 您在循环中获得的城市:
def crawl(self):
cities = ('AU','BE','CA','CH','CN','CZ','DE','ES','FR','GB','IE','IT','JP','KR','MX','NL','NZ','PL','RO','RU','SE','SG','US')
self.cities = dict()
c = []
for city in cities:
city_path = os.path.join(self.SITE_ROOT, 'cities', city)
with open(city_path, 'r') as file:
self.cities[city] = file.read().splitlines()
c += list(itertools.chain.from_iterable(zip(self.cities[city]))) # better.
print(c)
我试图按国家 UA、BE 等顺序将所有城市合并到一个链表中,但是我只得到每个国家城市的单独列表。我使用 itertools
做了以下方法def crawl(self):
cities = ('AU','BE','CA','CH','CN','CZ','DE','ES','FR','GB','IE','IT','JP','KR','MX','NL','NZ','PL','RO','RU','SE','SG','US')
self.cities = dict()
for city in cities:
city_path = os.path.join(self.SITE_ROOT, 'cities', city)
with open(city_path, 'r') as file:
self.cities[city] = file.read().splitlines()
c = list(itertools.chain.from_iterable(zip(self.cities[city]))) # better.
print(c)
当前输出:
['Moscow', 'St. Petersburg', 'Sochi', 'Nizhny Novgorod', 'Yekaterinburg', 'Krasnodar', 'Tyumen']
['sweden', 'Stockholm', 'Malmø', 'Gothenburg', 'Göteborg', 'Uppsala', 'Solna']
['Singapore', 'Kallang']
['Los Angeles, CA', 'San Jose, CA', 'San Diego, CA', 'San Francisco, CA', 'Austin, TX', 'Dallas, TX', 'Arlington, VA', 'Washington, DC', 'Boston, MA', 'New York, NY', 'Chicago, IL', 'Minneapolis, MN', 'Denver, CO', 'Salt Lake City, UT']
预期输出(单个列表中的所有城市):
['Moscow', 'St. Petersburg', 'Sochi', 'Nizhny Novgorod', 'Yekaterinburg', 'Krasnodar', 'Tyumen','sweden', 'Stockholm', 'Malmø', 'Gothenburg', 'Göteborg', 'Uppsala', 'Solna','Singapore', 'Kallang','Los Angeles, CA', 'San Jose, CA', 'San Diego, CA', 'San Francisco, CA', 'Austin, TX', 'Dallas, TX', 'Arlington, VA', 'Washington, DC', 'Boston, MA', 'New York, NY', 'Chicago, IL', 'Minneapolis, MN', 'Denver, CO', 'Salt Lake City, UT']
只需在开始循环之前将 c
创建为一个空列表,然后将每个国家/地区的单独列表添加到其中 - 您在循环中获得的城市:
def crawl(self):
cities = ('AU','BE','CA','CH','CN','CZ','DE','ES','FR','GB','IE','IT','JP','KR','MX','NL','NZ','PL','RO','RU','SE','SG','US')
self.cities = dict()
c = []
for city in cities:
city_path = os.path.join(self.SITE_ROOT, 'cities', city)
with open(city_path, 'r') as file:
self.cities[city] = file.read().splitlines()
c += list(itertools.chain.from_iterable(zip(self.cities[city]))) # better.
print(c)