扭转一个字符串是什么'。加入(目的)这里
为什么要使用join()方法的功能,而在蟒蛇
print(''.join(reversed(a)))
我们不能扭转一个字符串仅与反向功能
print(reversed("python"))
扭转一个字符串是什么'。加入(目的)这里
为什么要使用join()方法的功能,而在蟒蛇
print(''.join(reversed(a)))
我们不能扭转一个字符串仅与反向功能
print(reversed("python"))
不,你不能简单地通过调用reversed
做到这一点。 reversed
返回一个特殊的reversed
迭代器对象,它需要迭代以产生它的元素。
不提供给.join
这里只会打印出reversed
对象的令人困惑的repr
对象:<reversed object at 0x7f2ba02be320>
。
调用"".join
,这需要一个迭代作为参数,消耗reversed
对象并加入元素产生你看到的字符串。
注意到,还有其他的方式来使用它,而不join
导致不同的对象,list
,例如,将采取reversed
对象,并创建一个列表出来它产生的元素:
a = reversed('abcd')
print(list(a))
['d', 'c', 'b', 'a']
如果你最后需要一个字符串,那么最好的选择是.join
。
你可以操纵str
一样list
:
a = 'abcd'
a[::-1] #'dcba'
的join
目的是采取迭代和分隔符加入它产生一个字符串:
''.join(reversed(a))
a
可以是迭代支持迭代协议或重载对象__getitem__
。也就是说,您通常想要在for
循环或理解中使用的任何对象,或者您想迭代以产生结果并将它们作为字符串进行迭代,该对象可能是join
的潜在值。
reversed
返回您需要迭代的对象以便获取其值join
中的值。所以''.join(reversed(a))
意味着以下内容:首先反向a
,然后迭代reversed
的结果对象,并按照join
指定的分隔符连接每个提取的对象,在这种情况下,它只是一个空字符串。
难道我们不能只用反转函数来反转字符串吗?
不是真的!您可以使用此表达式而不是reversed
函数:'stackoverflow'[::-1]
来反转字符串。像往常一样,可以通过几种方法在编程中实现相同的效果。
这不是你的具体问题的答案,但是你可以在没有'join'和'reversed'的情况下反转一个字符串:'revstring = mystring [:: - 1]'。 – VPfB
你有没有打过电话的代码? –