Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.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:array和print()格式_Python_List_Format - Fatal编程技术网

Python:array和print()格式

Python:array和print()格式,python,list,format,Python,List,Format,我试图实现一个函数,将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=[“你好”、“世界”、“世界”、“世界”、“这个”、“是”、“是”、“a”、“textarray”] 在第一段代码中运行此命令,我会: HelloWo

我试图实现一个函数,将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=[“你好”、“世界”、“世界”、“世界”、“这个”、“是”、“是”、“a”、“textarray”]

在第一段代码中运行此命令,我会:

HelloWorld

Thisis
atextarray

我应该如何实现将array_1更改为array_2的函数,以便生成与上面相同的输出

你想要的是不可能的


首先,请注意,反转方向很容易。不同之处在于,
array2
中的项目在每个项目后面都有一个换行符,而
array1
中的项目在每个项目后面都没有任何内容,因此您只需在
array1
中的每个项目末尾添加一个
\n

array_2 = [item+'\n' for item in 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)

你不能只是扭转这种局面。显然没有什么比
项-'\n'
更好的了。如果每个项目都以
\n
结尾,您可以执行
项目[:-1]
,但大多数项目没有,并且您无法删除不存在的换行符

而且没有办法取消
print
将要添加在带有
反换行符的字符串后面的换行符。我的意思是,您可以包含一个终端控制序列,将光标向上移动一行,这样看起来它做了相同的事情,但实际上它没有做相同的事情,这很容易被破坏(在Windows上运行代码,将输出重定向到文件,…)


你可以靠得很近。你从来没有说过你需要元素一对一的对应关系,所以你可以这样做:

array_2 = [''.join(array_1)]
现在您在
数组_2
中只有一个项目,因此它在项目之间打印换行并不重要


但最后还是有一个新行,毕竟是一个项目。但仍然无法摆脱它(因为最后一项不是以可以删除的
\n
结尾)


所以,这个问题是不可能的。(缺少一些技巧性的问题答案,比如重新定义
打印
,以特殊情况显示您的输出或其他内容。)

在程序开始时,在分配数组_1值后,您只需编写
数组_2=数组_1

array_2 = [item+'\n' for item in 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)
还可以将第一位代码设置为带有参数x的函数,这样就可以将数组_1和数组_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 ='')
然后,您可以在发送此函数时改变数组_1或数组_2的放置方式

arr(array_1)
arr(array_2)

这些应该给您相同的值。

因为您真正想要的是更改
print
的默认行为,以便默认情况下它不会输出尾随的换行符,所以您可以使用
functools.partial
end='
作为默认参数。这样,您就不必担心从
array\u 1
创建新列表

array_2 = [item+'\n' for item in 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

array_2=array_1
maybe?array_2未定义。我想从数组_1构建数组_2,这样它就否定了print(item,end='')正在做的事情,并使用print(item)。由于没有其他参数的
print
将在打印结束时强制换行,因此需要将
array_1
的元素正确地连接到一个字符串中。有关基本字符串操作的信息,请访问您喜爱的教程。@Prune这仍然不能解决问题,因为在循环的末尾仍然会有一个额外的换行符。真的没有办法,我不一定要删除换行符。我正在尝试格式化数组_1,这样我们就可以创建新行。@Corp.andLtd。我明白了,这就是问题所在:没有办法做到这一点。换行符是通过
print
添加的,它不是字符串的一部分。因此,对字符串所做的任何操作都不会阻止打印换行符。