[英]how to append a list to the generator?
我在屬性文件中給出了國家和地區的列表,生成器就是這樣創建的。
lvls = {"Belgium": "EUR", "GER": "EUR"}
data_gen = ((f'{idx}', f'{lvl}') for idx, lvl in lvls.items())
生成器list(data_gen)
的 output 是
[('Belgium', 'EUR'),
('Germany', 'EUR'),
....]
我獲取國家/地區的每個lvls
密鑰並從數據庫中獲取其國家,現在我想將 append 到生成器,例如 output 應該是
[('Brussel','Belgium', 'EUR'),('Gent','Belgium', 'EUR'),('Bruge','Belgium', 'EUR')]
但不確定如何將 append 與重復國家和地區的現有值的生成器聯系起來。
因此最終的生成器將是
[('Brussel','Belgium', 'EUR'),('Gent','Belgium', 'EUR'),('Bruge','Belgium', 'EUR'),
( 'Berlin','Germany', 'EUR'),( 'Frankfurt','Germany', 'EUR')
....]
假設數據庫中的 output 如下:
cities = [('Brussel', 'Belgium'), ('Gent', 'Belgium'), ('Frankfurt', 'Germany')]
然后你可以像這樣使用你已經擁有的字典:
((city, country, lvls[country]) for city, country in cities)
假設您的數據庫查詢以這種方式返回 output: database = {"Belgium":["Brussels", "Gent", "Bruge"], "Germany":["Berlin", "Frankfurt"]}
。 您可以使用列表理解來實現您的目的:
lvls = {"Belgium": "EUR", "Germany": "EUR"}
database = {"Belgium":["Brussels", "Gent", "Bruge"], "Germany":["Berlin", "Frankfurt"]}
one = [(y,x,lvls[x]) for x,sub in database.items() for y in sub]
print(one)
Output
[('Brussels', 'Belgium', 'EUR'), ('Gent', 'Belgium', 'EUR'), ('Bruge', 'Belgium', 'EUR'), ('Berlin', 'Germany', 'EUR'), ('Frankfurt', 'Germany', 'EUR')]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.