Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 我无法理解这个迭代器_Loops_Dictionary_Iterator_Iterable - Fatal编程技术网

Loops 我无法理解这个迭代器

Loops 我无法理解这个迭代器,loops,dictionary,iterator,iterable,Loops,Dictionary,Iterator,Iterable,下面是我试图理解的代码。我读过 就我而言,我无法理解v和k代表什么。此外,当k被赋值时?您给出的代码片段将创建一个对象,该对象可从下一个函数中的my_dict项进行编辑。然后,它将打印满足k条件中的if'Date'的第一个值,即“7月15日” k,v值是在创建iterable对象时指定的(在您的示例中,它是列表),并表示键('name','age','Date of birth')和值('Klauss',26,'july 15')分别。您给出的代码片段创建了一个对象,该对象可从next函数中的m

下面是我试图理解的代码。我读过


就我而言,我无法理解v和k代表什么。此外,当k被赋值时?

您给出的代码片段将创建一个对象,该对象可从
下一个
函数中的
my_dict
项进行编辑。然后,它将打印满足k
条件中的
if'Date'的第一个值,即
“7月15日”


k,v
值是在创建iterable对象时指定的(在您的示例中,它是
列表
),并表示键(
'name'
'age'
'Date of birth'
)和值(
'Klauss'
26
'july 15'
)分别。

您给出的代码片段创建了一个对象,该对象可从
next
函数中的
my_dict
项进行编辑。然后,它将打印满足k
条件中的
if'Date'的第一个值,即
“7月15日”

k,v
值是在创建iterable对象时指定的(在您的示例中,它是
list
),并分别表示键(
'name'
'age'
'Date of birth'
)和值(
'Klauss'
26
'july 15'
)词汇表上的函数迭代此词汇表的键、值对

例如,您可能会在中找到这一点

因此:

是包含dict的(键、值)对的列表(按随机顺序)

同样地:

 >>> [v for k,v in my_dict.items()]
 ['15th july', 26, 'Klauss']
是包含dict值的列表

最后:

>>> [v for k,v in my_dict.items() if 'Date' in k]
['15th july']
是dict值的列表,其关键字包含单词“Date”

注:这意味着,如果您定义:

>>> 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']
考虑到“下一个”冰毒,你可能会发现 那

下一步(迭代器[,默认])

通过调用迭代器的next()方法从迭代器中检索下一项。如果给定默认值,则在迭代器耗尽时返回,否则将引发StopIteration

也就是说

>>> next(v for k,v in my_dict.items() if 'Date' in k)
'16th march'
是词汇表的第一个(按随机顺序)值,其关键字包含单词“Date”

items()函数对该词汇表的关键字、值对进行迭代

例如,您可能会在中找到这一点

因此:

是包含dict的(键、值)对的列表(按随机顺序)

同样地:

 >>> [v for k,v in my_dict.items()]
 ['15th july', 26, 'Klauss']
是包含dict值的列表

最后:

>>> [v for k,v in my_dict.items() if 'Date' in k]
['15th july']
是dict值的列表,其关键字包含单词“Date”

注:这意味着,如果您定义:

>>> 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']
考虑到“下一个”冰毒,你可能会发现 那

下一步(迭代器[,默认])

通过调用迭代器的next()方法从迭代器中检索下一项。如果给定默认值,则在迭代器耗尽时返回,否则将引发StopIteration

也就是说

>>> next(v for k,v in my_dict.items() if 'Date' in k)
'16th march'

关键字包含单词“Date”的词汇表的第一个(按随机顺序)值是否也可以反转?返回键而不是值?当然,使用相同的语法,它应该是:
[k代表k,v在我的dict.items()中,如果k中是“Date”]
我可能不完全理解,但我觉得我已经做到了。“for”前面的内容就是将要返回的内容。例如:
>>[4 For k,v in my_dict.items()]返回[4,4,4]
我已经使用这种类型的迭代器有一段时间了,但大部分都是复制过去的,不知道它是如何返回我想要的。哈哈,太谢谢你了!!反过来也可能吗?返回键而不是值?当然,使用相同的语法,它应该是:
[k代表k,v在我的dict.items()中,如果k中是“Date”]
我可能不完全理解,但我觉得我已经做到了。“for”前面的内容就是将要返回的内容。例如:
>>[4 For k,v in my_dict.items()]返回[4,4,4]
我已经使用这种类型的迭代器有一段时间了,但大部分都是复制过去的,不知道它是如何返回我想要的。哈哈,太谢谢你了!!