python3:for循环语法与字典

2024-04-24 09:48:37 发布

您现在位置:Python中文网/ 问答频道 /正文

以下代码片段有效:

param = {}

for nround_counter in [1,2,3]:
    { 
        print(nround_counter)
        #param = {'objective' : 'multi:softmax'}

    } 

但以下内容没有:

^{pr2}$

给出的错误是无效语法。我对Python不熟悉,需要帮助调试上面的内容。在

谢谢。在


Tags: 代码in内容forparam错误counter语法
2条回答

你在这里混淆了很多不同的问题。在

下面是您的第一个示例,使用通常用于Python的空白呈现:

#!python3
param = {}

for nround_counter in [1,2,3]:
    { print(nround_counter) }

注意,这是对一系列语句的迭代,语句被编码成一个set-literal构造函数表达式(无用且令人困惑),因为它的副作用而被调用(调用print函数)。它没有修改任何状态,但是在循环的每次迭代中,它被作为一个集合来计算,其中包含None单例作为其唯一的元素。在

这不是一种特殊的语法。这只是Python的set-literal构造语法的不可理解的用法。在

也完全不清楚你要达到什么目的。在一个列表上循环不断地将param反复绑定到相同的字面字典内容是没有意义的。在

如果你想建一个表格呢?在

^{pr2}$

。。。或者类似的事情。注意,我用dict()而不是文本{}初始化{},因为我认为如果稍微详细一点,它会更干净、更清晰。另外,我使用range(1,4)而不是你的文字列表,同样因为它更干净。我在这个循环的主体中所做的是愚蠢的,但这是一个你可以做什么的例子。在

请注意,我为每个循环生成一个唯一的键(一个常量字符串文本,其中包含迭代器变量的字符串表示形式)。人们通常会期望这些值也会以某种方式动态计算或推导出来;但我不知道是怎么回事,因为脑海中没有清晰的教学实例。在

在Python中,循环、函数、类等代码体不会用大括号括起来。缩进是决定代码结构的因素。在

for nround_counter in [1, 2, 3]:
    print(nround_counter)
    param = {'object' : 'multi:softmax'}

相关问题 更多 >