转换列表为str并使用join f(x)打印它

时间:2015-07-10 18:38:41

标签: python

我想做这个练习:

编写一个python程序,从用户那里获取一个字符串,将其反转然后打印出来。

我尝试了一些代码,但它不起作用:

a = str(input("your str :"))
x = []
for i in a :
   x.append(i)
x = x.reverse()
b = " ".join(x)
print(b)

代码为b = " ".join(x)的人:是从列表更改为str。

看看我在IDLE中使用它

>>> a = ["khalid" ,"safi", "is", "programer"]
>>> b = " ".join(a)
>>> b
'khalid safi is programer'
>>> print(b)
khalid safi is programer

5 个答案:

答案 0 :(得分:2)

您无需转换为列表。只需使用string[::-1]

即可

或者,如果您只想反转这些词,请执行以下操作:

a = str(input("your str :"))
x=a.split()[::-1]
print(" ".join(x))

答案 1 :(得分:1)

reverse()在原地工作,这意味着你不需要 x = x.reverse()

这将有效:

a = str(input("your str :"))
x=[]
for i in a:
   x.append(i)
x.reverse()
b = " ".join(x)
print(b)

但它仍然不是反转字符串的好方法

答案 2 :(得分:0)

你可以做到

a[::-1]

反转字符串

您的方法因此而失败

x = x.reverse()

list.reverse()作用于列表并更改您不需要将其分配给另一个列表的列表

由于您为其指定了 x ,因此反向返回的值为None,因为它不提供任何返回值,因此保存在x中。

您申请了"".join(x) on a None object因此导致错误

答案 3 :(得分:0)

尝试

x = str(input("your str :")).split()
x = x.reverse()
b = " ".join(x)
print(b)

答案 4 :(得分:0)

最好使用切片来反转单词列表..

如果您是python2。*用户请使用:

print " ".join(raw_input("plz enter str : ").split(" ")[::-1])

如果你是python3用户,请使用:

print(str.join(" ", input("plz enter str : ").split(" ")[::-1]))