python - 单词反转程序随机跳过字母?

标签 python

我的程序总是随机跳过字母!例如,“coolstory”变成“yrotsloc”,“awesome”变成“mosewa”

代码如下:

def reverse(text):
    length = len(text)
    reversed_text = []
    for i in range(0,length + 1):
        reversed_text += ['']
    original_list = []
    for l in text:
        original_list.append(l)
        new_place = length - (original_list.index(l))
        reversed_text[new_place] = l
    return "".join(reversed_text)

编辑:感谢大家的回答。我刚刚重新发现了这个被遗忘的帐户。我可以向你保证 6 年后我知道如何正确地反转各种不同语言的字符串:)

最佳答案

当你有重复的字母时会发生这种情况,因为

original_list.index(l)

将始终为相同的 l 返回相同的值。因此 new_place 对于不同位置的两个相同字母来说是相同的。

在 Python 中反转字符串的一种常见方法是使用切片:

>>> s = "hello"
>>> s[::-1]
'olleh'

您还可以使用 reversed() ,但这会返回一个 reversed object(不是字符串)。如果您想以相反的顺序遍历字符串,这是一个更好的选择:

>>> for c in reversed(s):
...     print c
... 
o
l
l
e
h

关于python - 单词反转程序随机跳过字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18321318/

相关文章:

python - 如何在 Django 模板中获取 base_url

Python:反转字符串

Python SQLite3函数不打印任何数据

python - 如何从 3d numpy 数组中提取向量?

python - sklearn 中无最小二乘的线性回归

python - Tensorflow TFRecordDataset.map 错误

Python:从网页中获取乘法文本值

python - 如何在python中保存文件内容?

python - 类属性评估和生成器

Python 以特定方式追加列表