在python中是否可以将for语句分配给变量?

在python中是否可以将for语句分配给变量?,python,python-3.x,Python,Python 3.x,我是python的学生,有一项作业要求我在不使用pandas的情况下编写代码。我需要给一个变量分配一个print语句,并且我希望包含一个for循环,这样它是动态的 现在,我已经硬编码了print语句的数量,这对于赋值来说已经足够了,但是我想知道是否有某种方法可以将For循环放入变量中,以供将来参考 我所做的一切都很好,因为我知道我需要多少打印语句: x= f{names[i]}:{percent[i]}%{vows[i]}\n f{names[i]}:{percent[i]}%{vows[i]}

我是python的学生,有一项作业要求我在不使用pandas的情况下编写代码。我需要给一个变量分配一个print语句,并且我希望包含一个for循环,这样它是动态的

现在,我已经硬编码了print语句的数量,这对于赋值来说已经足够了,但是我想知道是否有某种方法可以将For循环放入变量中,以供将来参考

我所做的一切都很好,因为我知道我需要多少打印语句:

x= f{names[i]}:{percent[i]}%{vows[i]}\n f{names[i]}:{percent[i]}%{vows[i]}\n f{names[i]}:{percent[i]}%{vows[i]}\n printx 我可以做些什么,这样我就不需要提前知道范围的终点:

对于0范围内的i,请执行以下操作: printf{names[i]}:{percent[i]}%{vows[i]} 只要我不将第二段代码赋给变量,它就可以很好地工作。问题是我需要将它分配给一个变量

当我这样做时:

x=对于范围0中的i,则为: printf{names[i]}:{percent[i]}%{vows[i]} printx 我得到:

SyntaxError:无效语法

指着台词说 对于0范围内的i,请执行以下操作:


我假设这意味着我不能将for循环分配给变量。有什么办法可以让我来做吗?

就像Aaakshat说的,你可以把结果分配到一个列表中

一种方法是从for循环生成器创建一个列表,然后用换行符连接每个项,如下所示

x='\n'。加入[f{names[i]}:{percent[i]}%{候选人中i的票数[i]}]

解释

我们所做的是通过循环遍历0和候选长度之间的所有数字来列出列表。这是由rangelen部分中的for i完成的

对于其中的每一个,我们生成字符串f{names[i]}:{percent[i]}%{voates[i]}

通过将其放在方括号中,我们告诉python列出所有这些字符串

然后,我们在每个项目之间放置一个换行“\n”,以连接列表“\n”中的字符串。连接


最后,我们将其分配给变量x。

如aakshat所说,您可以将结果分配给列表

一种方法是从for循环生成器创建一个列表,然后用换行符连接每个项,如下所示

x='\n'。加入[f{names[i]}:{percent[i]}%{候选人中i的票数[i]}]

解释

我们所做的是通过循环遍历0和候选长度之间的所有数字来列出列表。这是由rangelen部分中的for i完成的

对于其中的每一个,我们生成字符串f{names[i]}:{percent[i]}%{voates[i]}

通过将其放在方括号中,我们告诉python列出所有这些字符串

然后,我们在每个项目之间放置一个换行“\n”,以连接列表“\n”中的字符串。连接


最后,我们将其分配给变量x。

在循环之前为x分配一个空容器,然后在循环中,将每个字符串添加到容器中,而不是打印。循环完成后,x将包含多个字符串。如果您仔细阅读文档,您应该能够找到一个合适的容器


如果x应该是单个字符串:在循环之前为x分配一个空字符串,然后在循环中添加/连接到x。

在循环之前为x分配一个空容器,然后在循环中,而不是打印,将每个字符串添加到容器中-循环结束时,x将包含多个字符串。如果您仔细阅读文档,您应该能够找到一个合适的容器

如果x应该是单个字符串:在循环之前为x分配一个空字符串,然后在循环中添加/连接到x。

我认为您正在这样做。因此,有很多方法可以实现这一点。但是你想。根据你问题的语法,你似乎在寻找答案。这就是官方Python文档所提到的

列表理解提供了创建列表的简明方法。常见的应用程序是创建新的列表,其中每个元素是应用于另一个序列或iterable的每个成员的某些操作的结果,或者创建满足特定条件的这些元素的子序列

这是的格式,忘记PredicateOptional部分吧

因此,您的循环应该以这种方式进行转换,它将创建一个

这将起作用,但当您将语句赋给变量时,它将不返回任何值。那么你必须同意@EdWard's。他的回答还提到了它实际上是如何工作的,以及它如何符合你的问题

还有一件事,您不需要将值传递给,如果它以0开头,请参阅doc提到的内容

起始参数的值,如果未提供该参数,则为0

因此,您可以简单地使用RangeLen候选者而不传递值。两种方法都可以

>>>这 没有新线的方式结束 >>>x='\n'。加入[f{names[i]}:{percent[i]}%{候选人中i的票数[i]}] >>>x 'a:1%7\nb:2%8\nc:3%9' >>>printx a:1%7 b:2%8 c:3%9 >>> >>>这条路以新线结束 >>>x=.join[f{names[i]}:{percent[i]}%{laws[i]}\n为候选人中的i投票] >>>x 'a:1%7\nb:2%8\nc:3%9\n' >>>printx a:1%7 b:2%8 c:3%9 >>> 我想你在做什么。因此,有很多方法可以实现这一点。但是你想。根据你问题的语法,你似乎在寻找答案。这就是官方Python文档所提到的

列表理解提供了创建列表的简明方法。常见的应用程序是创建新的列表,其中每个元素是应用于另一个序列或iterable的每个成员的某些操作的结果,或者创建满足特定条件的这些元素的子序列

这是的格式,忘记PredicateOptional部分吧

因此,您的循环应该以这种方式进行转换,它将创建一个

这将起作用,但当您将语句赋给变量时,它将不返回任何值。那么你必须同意@EdWard's。他的回答还提到了它实际上是如何工作的,以及它如何符合你的问题

还有一件事,您不需要将值传递给,如果它以0开头,请参阅doc提到的内容

起始参数的值,如果未提供该参数,则为0

因此,您可以简单地使用RangeLen候选者而不传递值。两种方法都可以

>>>这种方式结束时没有新行 >>>x='\n'。加入[f{names[i]}:{percent[i]}%{候选人中i的票数[i]}] >>>x 'a:1%7\nb:2%8\nc:3%9' >>>printx a:1%7 b:2%8 c:3%9 >>> >>>这条路以新线结束 >>>x=.join[f{names[i]}:{percent[i]}%{laws[i]}\n为候选人中的i投票] >>>x 'a:1%7\nb:2%8\nc:3%9\n' >>>printx a:1%7 b:2%8 c:3%9 >>>
这个方法做了你想做的吗?好的。。。您是否运行了顶级代码ie x='\n'。在printx之后加入[f{names[i]}:{percent[i]}%{vowers[i]}for i in rangelen候选者]:是的,谢谢你!我想当我第一次看它的时候我误解了。我感谢你的帮助。这个方法做了你想做的吗?好的。。。您是否运行了顶级代码ie x='\n'。在printx之后加入[f{names[i]}:{percent[i]}%{vowers[i]}for i in rangelen候选者]:是的,谢谢你!我想当我第一次看它的时候我误解了。我感谢你的帮助。你的第一个例子-x=…-不是有效的Python。我的意思是在第一个示例中放置索引号而不是I。x=f{names[0]}:{percent[0]}%{voces[0]}\n等等。您的第一个示例-x=…-不是有效的Python。我的意思是在第一个示例中放置索引号而不是I。x=f{names[0]}:{percent[0]}%{voces[0]}\n等等。非常感谢您提供的这一视觉效果-它很有帮助!谢谢你的视觉效果-它很有帮助!