[英]How to check if ANY key in dict is empty? Python
我正在迭代一個電子表格(特別是谷歌表格),它返回一個字典列表。
我可以使用...訪問每個字典
sheet = client.open('test').sheet1
list = sheet.get_all_records()
for row in list:
在每個字典中,我需要運行一個函數來檢查特定鍵是否為空,如果是,則返回包含空鍵的字典。 我可以通過使用...
for row in list:
if bool(row['name']) == False:
print(row)
我的問題是如何檢查任何字典的鍵“name”是否為空,如果沒有字典的鍵“name”為空,則運行命令?
希望這是有道理的。
您可以使用any
函數來檢查整個集合:
if any([bool(r['name']) == False for r in list]):
print('at least one')
@Mad Physicist 提出了一個值得研究的好觀點。
在 Python 中,變量值可以轉換為布爾值並根據它們的“真實性”進行評估。 如果使用bool
函數轉換值, ''
、 None
、 0
和False
都轉換為False
。 任何其他值都會轉換為True
。
使用not
時會發生相同的轉換。 bool(x)==False
與not x
相同
考慮到這一點,您可以使代碼更簡潔:
if any([not r['name'] for r in list]):
print('at least one')
正如@MP 還提到的,您可以使用all
來反轉邏輯:
if not all([r['name'] for r in list]):
print('at least one')
all
會將每個值隱式轉換為布爾值
附帶說明一下,不要使用list
作為變量名,因為它是 Python 中的一種類型。
如果我理解正確,我喜歡
empty = filter(
lambda row: not row[“name”],
my_list
)
if len(empty):
return empty
# do stuff
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.