Python中for的循环真正如何工作?

时间:2019-01-25 17:17:07

标签: python arrays list loops

我正在学习python,并在一个测试中,我制作了一个包含数字列表的类,在另一个类中,该类包含一个上一类的列表。在第二堂课中,我编写了一种方法,可以对数字进行数字化处理,但它会将数字x乘以上一堂课的列表长度。

def make_connection(self, number):
        if not self.__has_con:
            for i in range(number):
                 self.__weight.append(1)
            self.__has_con = True

上面的方法是从第一类开始的,用于获取n个数字。

inp = len(self.__inputs)

for n in self.__hidden:
    n.make_connection(inp)

这是来自第二堂课。如果__hidden有9个对象,则对所有9个元素将inp放置9次。

第二类的缩写

def __init__(self, array):
        if isinstance(array, list):
            if len(array) > 2:
                inps = []
                hidd = []
                outs = []

                for i in range(array[0]):
                    k = kn(kn.INPUT)
                    inps.append(k)
                for i in range(array[len(array)-1]):
                    k = kn(kn.OUTPUT)
                    outs.append(k)

                a = array[1:]
                h = a[:len(a)-1]

                if len(h) > 1:
                    for i in h:
                        hd = []
                        for p in range(i):
                            k = kn(kn.HIDDEN)
                            hd.append(k)
                        hidd.append(hd)
                else:
                    for p in range(h[0]):
                        k = kn(kn.HIDDEN)
                        hidd.append(k)

                self.__inputs = inps
                self.__hidden = hidd
                self.__output = outs
            else:
                inps = []
                outs = []

                for i in range(array[0]):
                    k = kn(kn.INPUT)
                    inps.append(k)
                for i in range(array[0]):
                    k = kn(kn.OUTPUT)
                    outs.append(k)

                self.__inputs = inps
                self.__output = outs

2 个答案:

答案 0 :(得分:1)

Python中的for var in collection语法使用迭代器。它不是在for循环中指定起始值,增量和终止值,而是循环遍历集合中的所有值。

因此,当您在Python中这样说时:

for x in range(4):
   print x

这就像用其他语言这样说:

for (x = 0; x < 4; ++x) {
   print(x);
}

在这种情况下,Python的range返回0..4之上的迭代器。在您的示例中,Python为您提供了集合的每个元素。

有关详情,请参见:https://www.w3schools.com/python/python_iterators.asp

答案 1 :(得分:-1)

在python中使用for循环:

for str in str_list
    print (str)