我有一个列表,其中每个元素都是一个字母。像这样:
myList = ['L', 'H', 'V', 'M']
但是,我想要反转这些字母并将它们存储为字符串。像这样:
myString = 'MVHL'
有没有一种简单的方法在python中执行此操作?是否有一个.reverse我可以调用我的列表然后只是循环并添加项目到我的字符串?
答案 0 :(得分:8)
有一个reversed()
function,以及[::-1]
负步幅切片:
>>> myList = ['L', 'H', 'V', 'M']
>>> ''.join(reversed(myList))
'MVHL'
>>> ''.join(myList[::-1])
'MVHL'
当与str.join()
method结合使用时,两者都能令人钦佩地完成工作,但在这两者中,负步幅切片是更快的方法:
>>> import timeit
>>> timeit.timeit("''.join(reversed(myList))", 'from __main__ import myList')
1.4639930725097656
>>> timeit.timeit("''.join(myList[::-1])", 'from __main__ import myList')
0.4923250675201416
这是因为str.join()
确实需要一个列表,两次传递输入列表中的字符串(一次用于分配空间,第二次用于复制字符数据),而负片直接返回列表,而reversed()
则返回迭代器。
答案 1 :(得分:5)
您可以使用reversed
(或[::-1]
)和str.join
:
>>> myList = ['L', 'H', 'V', 'M']
>>> "".join(reversed(myList))
'MVHL'