以下是我想要了解的代码。我看过this
my_dict = {'name': 'Klauss', 'age': 26, 'Date of birth': '15th july'}
next(v for k,v in my_dict.items() if 'Date' in k)
'15th july'
对于我的生活,我无法理解v和k代表什么。此外,当k被分配值?
答案 0 :(得分:1)
您提供的代码段创建了一个可以从@NonLocationActions:NonLocationActions
函数中的my_dict
项进行迭代的对象。然后打印满足next
if 'Date' in k
条件的第一个值。
'15th july'
)时会分配 k, v
个值并代表键(list
,'name'
,'age'
)和值('Date of birth'
,'Klauss'
,26
)。
答案 1 :(得分:1)
items()函数迭代此词典的键值对。
例如,您可以在the documentation of a simple loop over dictionnary key/values中找到它。
所以:
>>> [(k,v) for k,v in my_dict.items()]
[('Date of birth', '15th july'), ('age', 26), ('name', 'Klauss')]
是一个包含dict(键,值)对的列表(按随机顺序排列)。
以同样的方式:
>>> [v for k,v in my_dict.items()]
['15th july', 26, 'Klauss']
是一个包含字典值的列表。
最后:
>>> [v for k,v in my_dict.items() if 'Date' in k]
['15th july']
是密钥包含单词“Date”
的dict值列表注意:这意味着,如果您定义:
>>> my_dict = {'name': 'Klauss', 'age': 26, 'Date of birth': '15th july', 'Date of death' : '16th march'}
你会得到:
>>> [v for k,v in my_dict.items() if 'Date' in k]
['16th march', '15th july']
考虑“下一步”,您可能会发现here
next(iterator [,default])
通过调用 next ()方法从迭代器中检索下一个项目。如果给定default,则在迭代器耗尽时返回,否则引发StopIteration。
这意味着
>>> next(v for k,v in my_dict.items() if 'Date' in k)
'16th march'
键的第一个(按随机顺序)值,其中包含“Date”一词