Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 是否可以将stdin输入附加到Θ;(n) 蟒蛇_Python_Python 3.x_Stdin - Fatal编程技术网

Python 是否可以将stdin输入附加到Θ;(n) 蟒蛇

Python 是否可以将stdin输入附加到Θ;(n) 蟒蛇,python,python-3.x,stdin,Python,Python 3.x,Stdin,我遇到了一个问题,需要将项目添加到列表中。它必须使用stdin,并且在Θ(n)中。我似乎只能在Θ(n^2)中得到它。 这是我的代码: for i in range(int(r1)): # size of list being made for line in sys.stdin.readline().strip().split(" "): a.append(line) Input: Output: [1, 2, 3] 1 2 3 据我所知,这在Θ(n^2)中。我尝试过

我遇到了一个问题,需要将项目添加到列表中。它必须使用stdin,并且在Θ(n)中。我似乎只能在Θ(n^2)中得到它。 这是我的代码:

for i in range(int(r1)): # size of list being made
    for line in sys.stdin.readline().strip().split(" "):
        a.append(line)
Input:  Output: [1, 2, 3]
1
2
3
据我所知,这在Θ(n^2)中。我尝试过这样做:

for i in range(int(r1)): # size of list being made
    a.append(sys.stdin.readline().strip().split(" "))
Input:  Output: [[1], [2], [3]]
1
2
3

因为第二次尝试的元素在它们自己的子列表中,所以它们不适用于我程序的其余部分。有adivce吗?

您是否尝试过使用extend而不是append

a.extend(sys.stdin.readline().strip().split(" "))
这是一种解释


您还可以检查复杂性符号

您是否尝试使用extend而不是append

a.extend(sys.stdin.readline().strip().split(" "))
这是一种解释


您还可以检查复杂性符号

这不在Θ(n)中,也不在Θ(n^2)中。复杂性取决于许多不同的变量:列表的大小,以及stdin每行上的空格数。外部for循环执行列表大小的次数;该循环的主体在每行上执行空格数,执行次数为。因此,对于[0,r]中的所有i,你的复杂性更像Θ(r*kΘi),其中kΘi是第i个标准的空间数。

这不在Θ(n)中,也不在Θ(n^2)中。复杂性取决于许多不同的变量:列表的大小,以及stdin每行上的空格数。外部for循环执行列表大小的次数;该循环的主体在每行上执行空格数,执行次数为。因此,对于[0,r]中的所有i,你的复杂性更像Θ(r*ki),其中k_i是第i个标准的空间数。

uhmm,为什么你认为append是O(n^2)?追加操作的摊销平均情况和最坏情况均为O(1)。如果插入,您可能会看到更差的性能,但追加的速度非常快。我认为您的大O符号不正确。仅仅因为它是一个列表并不能使它平方,因为你希望列表每次都有一个成员。我对那些导致复杂性增加的循环更具意义?如果你反复迭代同一个列表,这只是一个问题。如果您必须读取输入三次(就像您正在做的),那么您正在以恒定的时间执行算法所必需的操作。嗯,为什么您认为append是O(n^2)?追加操作的摊销平均情况和最坏情况均为O(1)。如果插入,您可能会看到更差的性能,但追加的速度非常快。我认为您的大O符号不正确。仅仅因为它是一个列表并不能使它平方,因为你希望列表每次都有一个成员。我对那些导致复杂性增加的循环更具意义?如果你反复迭代同一个列表,这只是一个问题。如果你必须读输入三次(就像你正在做的那样),那么你在恒定的时间内做一些对你的算法来说是必要的事情。不,我实际上没有试过。然而,我不是100%确定O(k)是什么意思。不,我实际上没有试过。然而,我不是100%确定O(k)是什么意思。