簡體   English   中英

如何檢查dict中的ANY鍵是否為空? Python

[英]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函數轉換值, ''None0False都轉換為False 任何其他值都會轉換為True

使用not時會發生相同的轉換。 bool(x)==Falsenot 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.

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