如何在python中将单个字符组合在一个字符串中[重复]

Posted

技术标签:

【中文标题】如何在python中将单个字符组合在一个字符串中[重复]【英文标题】:How to combine individual characters in one string in python [duplicate] 【发布时间】:2017-02-18 02:46:49 【问题描述】:

我有这样的代码:

def reverse(text):
    l=len(text)
    while ((l-1)!=0):
        print (str(text[l-1]))

        l=l-1
    print (str(text[0]))   

a=reverse("abc!de@fg")

输出是:

g
f
@
e
d
!
c
b
a

但我想将这些单独的字符组合起来,并希望输出如下:

gf@ed!cba 

【问题讨论】:

return text[::-1] 简单地用作reverse 函数会更容易,除非这是家庭作业或其他事情 一个设计为return 的函数通常不包含print 语句。返回一个字符串。让函数的用户决定是否要打印返回值。 【参考方案1】:
def reverse(text):
    if len(text) <= 1:
        return text
    return reverse(text[1:]) + text[0]
print (reverse('abc!de@fg'))

【讨论】:

你需要连接每个字符。【参考方案2】:

在 Python 中,反转 Sequence 的最简单方法是使用切片:

>>> string="abc!de@fg"
>>> print(string[::-1])
gf@ed!cba

切片会以相反的顺序为您提供序列的副本。

一般来说,你希望一个函数做一件事。返回一个值和打印一些输出是不同的关注点,所以它们不应该混在同一个函数中。如果您有一个返回反转字符串的函数,您可以简单地打印该函数:

print(reverse("abc"))

然后,您可以看到您的实际算法很好,即使不是完全 Pythonic:

def reverse(text):
    l=len(text)
    output = ""
    while ((l-1)!=0):
        output += (str(text[l-1]))
        l=l-1
    output +=(str(text[0]))
    return output

您现在可以清楚地看到它的打印功能。

【讨论】:

【参考方案3】:

反转字符串的最简单方法:

In [1]: a = "abc!de@fg"

In [2]: print(a[::-1])
gf@ed!cba

pythonprint 语句默认添加换行符。没有换行符的简单打印方法是

sys.stdout.write('some text')
# or
print('some text', end='')

【讨论】:

【参考方案4】:

嘿,尝试将打印值放入变量中并在最后打印。像这样。

def reverse(text):
    l=len(text)
    output = ""
    while ((l-1)!=0):
        output += (str(text[l-1]))

        l=l-1
    output +=(str(text[0]))

    print output
a=reverse("abc!de@fg")

希望对你有帮助

【讨论】:

【参考方案5】:

您需要将它们连接起来,然后打印字符串结果。

这是因为函数print 会自动换行。

解决方法是:

def reverse(text):
       l = len(text)
       aux = ''

       while l-1 != 0:
           aux += str(text[l-1])
           l = l - 1

       print (aux)   
       a = reverse("abc!de@fg")`

P.S:尽量避免多余的括号=)

【讨论】:

@Wrong 答案的补充,如果没有返回,直接叫出来,不需要赋值【参考方案6】:

要在每行末尾不换行打印,请执行以下操作:

print('text', end='')

要获取一个字符列表并将它们变成一个字符串,请执行以下操作:

''.join(list_of_characters)

【讨论】:

以上是关于如何在python中将单个字符组合在一个字符串中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中将单个字符转换为其十六进制 ASCII 值?

如何在python中将单个字符转换为十六进制ascii值

在python中将相似的字符串分组为单个组[重复]

在Python中将字符串分解为字符列表[重复]

如何在Python中将字符映射到整数范围[-128,127]?

如何在 C++ 中将文件中的段落作为单个字符串读取