我正在尝试实现一个将array_1更改为array_2的函数,以便array_2产生与array_1相同的输出。例如:
for item in array_1:
print(item, end ='')
我希望下面的代码产生与上面的代码相同的输出:
for item in array_2:
print(item)
array_1 = ["Hello", "World", '\n', '\n', "This", "is", '\n', "a", "textarray"]
在第一段代码中运行这段代码,结果如下:
HelloWorld
Thisis
atextarray
我应该如何实现将array_1更改为array_2的函数,以使其产生与上面相同的输出?
发布于 2018-07-18 09:36:04
由于您真正要做的就是更改print
的默认行为,使其在默认情况下不输出尾随换行符,因此可以使用functools.partial
将end=''
设置为默认参数。这样,您就不需要担心从array_1
创建新列表了。
from functools import partial
print = partial(print, end='')
array_1 = ["Hello", "World", '\n', '\n', "This", "is", '\n', "a", "textarray"]
for item in array_1:
print(item)
这将输出以下内容:
HelloWorld
Thisis
atextarray
发布于 2018-07-18 09:03:20
在程序开始时,在给array_1赋值之后,您可以简单地编写array_2 = array_1
。
另外,让您的第一段代码成为一个带有参数x的函数,这样您就可以将array_1和array_2放在一起。你的最终代码应该是这样的:
array_1 = ["Hello", "World", '\n', '\n', "This", "is", '\n', "a", "textarray"]
array_2 = array_1
def arr(x):
for item in x:
print(item, end ='')
然后,您可以在发送此函数时不同地放置array_1或array_2。
arr(array_1)
arr(array_2)
这些应该会给你相同的值。
https://stackoverflow.com/questions/51392013
复制相似问题