簡體   English   中英

如何將 append 列表給生成器?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM