我有一本看起來像這樣的字典:
dict = {'Country': ['China','Diamond Princess','Singapore'],
'Total Cases': [74187,621,81],
'New Cases': [1751,79,0],
'Total Deaths': [2006,0,0],
'Recovered': [14796,17,29]}
我想知道如何創建一個函式來回傳總病例數超過 100 的國家名稱串列?另外,我想知道如果過濾條件基于其他值怎么辦?例如,新病例占病例總數的比例大于 10%?我似乎無法理解如何在 Python 中使用字典...感謝任何輸入!謝謝!
uj5u.com熱心網友回復:
您可以遍歷“Total Cases”串列并使用其索引來獲取相應的國家名稱:
out = [dct['Country'][i] for i, num in enumerate(dct['Total Cases']) if num > 100]
或者用來zip一起遍歷兩個串列:
out = [country for num, country in zip(dct['Total Cases'], dct['Country']) if num > 100]
輸出:
['China', 'Diamond Princess']
通常,您可以使用zip一起遍歷多個串列并使用 if 條件來過濾所需的結果。
例如,
out2 = []
for country, new, total in zip(dct['Country'], dct['New Cases'], dct['Total Cases']):
if new / total > 0.1:
out2.append(country)
將獲取新病例占總病例 10% 以上的國家/地區。
即使你擁有的是一本字典,重要的是你有一個索引相互對應的串列集合。它就像一個帶有索引和列的表。在表格形式中,它看起來像:
Country Total Cases New Cases Total Deaths Recovered
0 China 74187 1751 2006 14796
1 Diamond Princess 621 79 0 17
2 Singapore 81 0 0 29
uj5u.com熱心網友回復:
您可以像這樣列出理解:
output = [dct['Country'][i] for i in range(len(dct['Country'])) if dct['Total Cases'][i] > 100]
輸出:
['China', 'Diamond Princess'] #list of countries with more than 100 cases
完整代碼:
dct = {'Country': ['China','Diamond Princess','Singapore'],'Total Cases': [74187,621,81],'New Cases': [1751,79,0],'Total Deaths': [2006,0,0],'Recovered': [14796,17,29]}
output = [dct['Country'][i] for i in range(len(dct['Country'])) if dct['Total Cases'][i] > 100]
print(output)
uj5u.com熱心網友回復:
您有兩個串列dict['Country']和dict['Total Cases'],它們將有關單個專案的資訊存盤在其相應的元素中。
如果將它們壓縮在一起,則可以遍歷相應的對并選擇病例數較高的國家/地區。
def high_case_countries(d):
return [country
for country, count in zip(d['Country'], d['Total Cases'])
if count > 100]
x = high_case_countries(dict)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/422560.html
標籤:
上一篇:如何獲得這本詞典中可能組合的總和
