几周前我开始学习python,到目前为止还没有编程背景。 我想知道是否有人可以用简单的语言解释我,“循环列表”有什么作用? 这是一个例子:
list = [4, 'b', 'e',21,5]
for n in list:
print n
运行脚本后,我得到的是:逐项打印列表: 4 b Ë 21 5
但我不明白它背后的逻辑。 有人会善意向我解释一下吗?
谢谢,抱歉无知。
答案 0 :(得分:3)
我认为你的例子可以让你尽可能清楚地表达它。
mylist = [4, 'b', 'e', 21, 5]
通过使用[
语法,这将创建一个新的list,并按照给定的顺序对其进行初始化。然后将列表分配给变量{{1 }}。 (请注意,我更改了名称,因为mylist
是list
数据类型的默认名称。
list
这是for loop,它迭代列表中的所有项目。 Python努力像英语一样阅读。所以它说,
对于列表
for n in mylist:
中的每个项目,请调用项mylist
并执行以下操作:
然后,对每个项目执行在n
下缩进的所有内容。
for
当然,这会将print n
打印到屏幕上。
总而言之,您的代码说:
1)创建一个包含以下项目的列表:4,'b','e',21,5
2)对于该列表中的每个项目,将其称为
n
,然后将n
打印到屏幕上。
答案 1 :(得分:2)
由于您似乎没有接触过其他编程语言,因此您无法真正看到,为什么这对于表达列表元素的迭代来说真的是一个有用的符号。
为了对比它,这是另一个更低级语言的例子:
int foo[] = { 0, 1, 2, 3, 4, 5, 6 };
int i;
for(i = 0; i < sizeof(foo) / sizeof(int); i++)
{
printf("%d", foo[i]);
}
基本上,Python列表就像添加了很多语法便利的数组一样。也就是说,您可以以更紧凑的形式表达您经常需要的东西,例如迭代:
somelist = [0, 1, 2, 3, 4, 5, 6]
for element in somelist:
print(element)
编辑:有时查看源代码会有所帮助,在本例中是Python源代码分发的文件Objects/listobject.c
(例如3.3)。在那里你会发现所有python list方法的实现,其中有listiter_next
,它处理遍历。除了一些东西,代码看起来像这样:
static PyObject *
listiter_next(listiterobject *it)
{
PyListObject *seq;
PyObject *item;
seq = it->it_seq;
if (seq == NULL)
return NULL;
if (it->it_index < PyList_GET_SIZE(seq)) {
item = PyList_GET_ITEM(seq, it->it_index);
++it->it_index;
return item;
}
it->it_seq = NULL;
return NULL;
}
你可以说这是列表上的循环。
答案 2 :(得分:1)
想想
for x in list:
print x
作为句子
对于列表中的每个项目x,打印(显示)它是什么。
在另一个案例中
for x in list:
print x+1
您可以将其视为
对于列表中的每个项目x,打印项目+ 1的结果。
就短语“循环列表”而言,将“循环”视为“从外部检查”。隐喻:你在飞机上,飞过一组建筑物:
buildings = ['Empire State', 'Chrysler', 'Masonic Lodge']
for building in buildings:
print "Just flew over the %s building." % building
你在一个项目数组中重复一个任务(在一个循环中)“over”或“for each”,在隐喻的情况下,这是一系列建筑物。
答案 3 :(得分:0)
这个“循环列表”只是遍历列表中的每个元素(在您的示例中,这些元素是4
,b
,e
,21
,{ {1}})以便您可以单独对它们执行某些操作(例如5
或在示例中显示其值)。
换句话说,当你执行这段代码时:
print
向一个人指示以下内容是相同的:
for element in list:
print element
当然,除了“显示”每个元素的值之外,您还可以执行其他操作。您可以遍历该列表并以(几乎)您喜欢的方式修改值。
答案 4 :(得分:0)
您有一个包含一定数量元素的列表。现在,您希望对该列表中的每个元素执行某些操作,例如,将其打印到控制台。通过使用for n in list
,您可以逐个考虑list
中的元素,并且当前考虑的元素称为n
。首先,n
指向list
中的第一个元素,然后指向第二个元素,然后指向第三个元素,依此类推。在该行下方的缩进块中,您将描述每个元素n
的内容。在这种情况下,唯一的指令是print
它。