如何水平打印以下内容,而不是垂直打印[复制]

How can I print the following horizontally, not vertically [duplicate]

提问人:Dami Devil 提问时间:6/4/2022 最后编辑:CodeLikeBeakerDami Devil 更新时间:6/4/2022 访问量:374

问:

我尝试水平打印

Text="Si ya conoces Colab, echa un vistazo a este vídeo para obtener información sobre las tablas interactivas"
List= [31,43,15,5,26,32,6,1,3,62,62,62,62,62,62]

for x in List:
  print (Text[x])

结果

s

o

u

t

c

y

我想要

s o u t c i y

我也不想这样做:

print(Text[31],Text[43],Text[15],Text[5],Text[26],Text[32],Text[6],Text[1],Text[3],Text[62],Text[62],Text[62],Text[62],Text[62],Text[62])
python for 循环 切片

评论


答:

0赞 fynmnx 6/4/2022 #1

这应该有效,还会检查索引是否在范围内。

for x in l:
 if x < len(text):
    print(text[x], end = " ")
0赞 sir_ 6/4/2022 #2

一个好的方法是先将其添加到字符串中,然后将其打印出来

text="Si ya conoces Colab, echa un vistazo a este vídeo para obtener información sobre las tablas interactivas"
list= [31,43,15,5,26,32,6,1,3,62,62,62,62,62,62]

output = "" #initialize the output string
for x in list: 
  #continually concat to the output string
  output += text[x]

print(output)

0赞 MatthewRBevins 6/4/2022 #3

试试这个:

for x in List:
    print (Text[x],end="")
1赞 danielhoherd 6/4/2022 #4

在 python 中,字符串本身是可索引的。例如:

>>> Text = "Si ya conoces Colab, echa un vistazo a este vídeo para obtener información sobre las tablas interactivas"
>>> Text[0]
'S'
>>> Text[1]
'i'

有了这种能力,我们可以做一个列表推导,迭代 ury,如果值不是空格,则返回索引的值。这将返回一个列表,其中每个值都是正确的字母。然后,我们使用空格字符将该列表连接到一个字符串中,以分隔每个字母。ListText

>>> Text = "Si ya conoces Colab, echa un vistazo a este vídeo para obtener información sobre las tablas interactivas"
>>> List = [31,43,15,5,26,32,6,1,3,62,62,62,62,62,62]
>>> print(' '.join([Text[x] for x in List if Text[x] != " "]))
s o u t c i y

上面的列表推导几乎等同于这个较长的代码:

>>> new_list = []
>>> for x in List:
...     if Text[x] != ' ':
...         new_list.append(Text[x])
...
>>> print(" ".join(new_list))
s o u t c i y
1赞 Chris 6/4/2022 #5

您还可以将关键字 arg 用于 ,并将生成器表达式扩展为 。sepprintprint

print(*(Text[x] for x in List if Text[x] != ' '), sep=" ", end="")