![](/img/trans.png)
[英]When iterating over a dictionary in python, why do you get the key and not the key-value tuple?
[英]Python Iterating in a dictionary to get empty key's
大家好,我正在嘗試從字典中迭代以獲取密鑰,以防某些密鑰為空,但我不知道如何實現這一點。
任何想法 ?
def val(**args):
args = args
print args
# print args
# print (args.keys())
val(name = '', country = 'Canada', phone = '')
在這個例子中,我得到{'country':'Canada','name':'','phone':''}但當我真正想要的是只使用append獲取列表中空鍵的鍵,問題是它給了我所有的鍵,而不僅僅是空鍵。
在這種情況下,我想返回這樣的內容:姓名,電話
我感謝您的幫助。
迭代字典並提取值為空字符串的鍵:
empty_keys = [k for k, v in args.items() if v == '']
或作為一種功能:
>>> def val(**args):
... return [k for k, v in args.items() if v == '']
...
>>> val(name = '', country = 'Canada', phone = '')
['phone', 'name']
這是你獲得空鍵列表的方法:
empty = [k for k, v in args.items() if not v or v.isspace()]
請注意,上面包括值為None
或''
或僅包含空格的情況。
for語句可用於迭代字典的鍵/值,然后您可以使用它們執行所需的操作。
def val(args) :
outputList = []
for k, v in args :
if v == '' :
outputList.append(k)
return outputList
此函數將返回由值為空字符串的鍵組成的列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.