如何解决如何在单个链表中合并多个国家/地区 - 城市?
我试图将所有城市按国家/地区 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,'San Diego,'San Francisco,'Austin,TX','Dallas,'Arlington,VA','Washington,DC','Boston,MA','New York,NY','Chicago,IL','Minneapolis,MN','Denver,CO','Salt Lake City,UT']
预期输出(单个列表中的所有城市):
['Moscow','Tyumen','sweden','Solna','Singapore','Kallang','Los Angeles,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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。