Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.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

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
python for循环多个值/对象?在'之后;在';_Python_Loops_For Loop - Fatal编程技术网

python for循环多个值/对象?在'之后;在';

python for循环多个值/对象?在'之后;在';,python,loops,for-loop,Python,Loops,For Loop,我不明白语法在做什么,这是for循环: for n, id_ in tqdm(enumerate(test_ids), total=len(test_ids)): 我在Kaggle内核中找到了它。我试着尽可能多地搜索解决方案,但找不到任何关于python for循环的示例或解释,其中for循环的一部分中的“in”后面有多个逗号分隔的值。因为我不知道这叫什么,所以我不确定还要搜索什么 这是整个代码块: for n, id_ in tqdm(enumerate(test_ids), total=l

我不明白语法在做什么,这是for循环:

for n, id_ in tqdm(enumerate(test_ids), total=len(test_ids)):
我在Kaggle内核中找到了它。我试着尽可能多地搜索解决方案,但找不到任何关于python for循环的示例或解释,其中for循环的一部分中的“in”后面有多个逗号分隔的值。因为我不知道这叫什么,所以我不确定还要搜索什么

这是整个代码块:

for n, id_ in tqdm(enumerate(test_ids), total=len(test_ids)):
    path = TEST_PATH + id_
    img = imread(path + '/images/' + id_ + '.png')[:,:,:IMG_CHANNELS]
    sizes_test.append([img.shape[0], img.shape[1]])
    img = resize(img, (IMG_HEIGHT, IMG_WIDTH), mode='constant', preserve_range=True)
    X_test[n] = img
这是代码所在的内核:

您可以在
for
循环中为iterable使用多个逗号分隔的元素,但这里并不是这样。在中的
之后只有一件事,一个函数调用恰好包含两个参数

与此情况相比:

for x in range(0, 10):

右侧没有两个逗号分隔的值
0
10
,只有一个
范围


如果右边有两个或多个逗号分隔的值怎么办?那么它只是一个元组:

>>> for x in 1, 2, 3:
...     print(x)
1
2
3
对于(1,2,3)中的x,它与
中的元组完全相同:


在您的例子中,使事情稍微复杂一点的是
tqdm
返回的任何内容的单个元素都被解包。(在本例中,它生成传入的任何内容,并且由于传入了
枚举
,因此每个元素都是一个索引值对。)因此在
中的
左侧有两个逗号分隔的目标

但这是一个完全独立的问题,您可以通过一个简单的列表来重复:

>>> word = ['aa', 'ab', 'bc']
>>> for first_letter, second_letter in words:
...    print(first_letter, second_letter)
a a
a b
b c
解包与任务中的解包相同:

>>> first, second = 'az'
>>> first
'a'
>>> second
'z'
for
循环中,可以对iterable使用多个逗号分隔的元素,但这里并不是这样。在
中的
之后只有一件事,一个函数调用恰好包含两个参数

与此情况相比:

for x in range(0, 10):

右侧没有两个逗号分隔的值
0
10
,只有一个
范围


如果右边有两个或多个逗号分隔的值怎么办?那么它只是一个元组:

>>> for x in 1, 2, 3:
...     print(x)
1
2
3
对于(1,2,3)中的x,它与
中的元组完全相同:


在您的例子中,使事情稍微复杂一点的是
tqdm
返回的任何内容的单个元素都被解包。(在本例中,它生成传入的任何内容,并且由于传入了
枚举
,因此每个元素都是一个索引值对。)因此在
中的
左侧有两个逗号分隔的目标

但这是一个完全独立的问题,您可以通过一个简单的列表来重复:

>>> word = ['aa', 'ab', 'bc']
>>> for first_letter, second_letter in words:
...    print(first_letter, second_letter)
a a
a b
b c
解包与任务中的解包相同:

>>> first, second = 'az'
>>> first
'a'
>>> second
'z'

在这个for循环中发生的事情称为解包和压缩。您可以忽略tqdm函数,因为如果要删除它,唯一不同的是您不会看到加载条,但其他所有功能都可以正常工作。此代码

for n, id_ in tqdm(enumerate(test_ids), total=len(test_ids)):
工作原理与不使用负载杆时相同

for n, id_ in enumerate(test_ids):
enumerate所做的是将每个项的索引号放置在数组的新维度中给定的元组中。因此,如果数组输入是1D,那么输出数组将是2D,一个维度是索引,另一个维度是值。
让我们假设您的测试ID是
[(2321),(2324),(23213)]
现在使用enumerate,列表现在看起来像
[(02321),(12324),(223213)]
放置逗号的作用曾经是给定一个值(在for循环中)比如(02321)按照给定的顺序将每个元组值分开,因此在本例中,它们将等于n=0和id_=2321,在for循环中发生的事情称为解包和压缩。您可以忽略tqdm函数,因为如果要删除它,唯一不同的是您不会看到加载条,但其他所有功能都可以正常工作。此代码

for n, id_ in tqdm(enumerate(test_ids), total=len(test_ids)):
工作原理与不使用负载杆时相同

for n, id_ in enumerate(test_ids):
enumerate所做的是将每个项的索引号放置在数组的新维度中给定的元组中。因此,如果数组输入是1D,那么输出数组将是2D,一个维度是索引,另一个维度是值。
让我们假设您的测试ID是
[(2321),(2324),(23213)]
现在使用enumerate,列表现在看起来像
[(02321),(12324),(223213)]
放置逗号的作用曾经是给定一个值(在for循环中)比如(02321)按照给定的顺序将每个元组值分开,因此在这种情况下,它们将等于n=0和id_u=2321

通常参考as
tqdm
返回某种类型的iterable,它被解包到变量
n
\u id
中。tqdm方法返回一个可能大小为2的列表。当分配给n时,第0个索引id被分配给n,第1个索引id@AnandSiddharth
tqdm
不返回列表。在
中的
后面没有两个逗号分隔的值,只有一个函数调用(有两个参数,事实上,第二个参数是一个关键字参数,所以它看起来根本不像第二个值)它通常被称为as。
tqdm
返回某种类型的iterable,它被解包到变量
n
\u id
。tqdm方法返回一个可能大小为2的列表。当分配给n时,第0个id索引被分配给n,第1个id索引被分配给id@AnandSiddharth
tqdm
不返回list、 在
中的
后面没有两个逗号分隔的值,只有一个函数调用(有两个参数,事实上,第二个参数是一个关键字参数,所以它看起来甚至不像第二个值).仅供参考,
tqdm
是一个流行的进度条库。@juanpa.arrivillaga它可以产生多少对,可能会产生一个百分比和一个当前标签?(我不确定该信息是否