Skip to main content
 首页 » 编程设计

python之Python 中的三重运算生成列表而不是字符串

2025年05月04日21leader

我正在尝试编写一些代码来将单词的每个字母变成三倍。所以你好变成 hhheeelllllllooo 等。我可以做到(通过另一种方法)。

我的问题是...为什么以下代码 不起作用?它似乎输出一个列表而不是一个字符串——当我测试这个函数时——我不知道为什么。我认为 join 可以将列表转换为字符串?

def triple(text): 
    x=list(text) 
    for i in range(0,len(x)): 
        x[i]=x[i]+x[i]+x[i] 
    ''.join(x) 
    return x 

请您参考如下方法:

''.join(x) 不更新 x。 x 是一个列表。你返回x。你返回一个列表。

def triple(text): 
    x=list(text) 
    for i in range(0,len(x)): 
        x[i]=x[i]+x[i]+x[i] 
    return ''.join(x) 

或

def triple(text): 
    x=list(text) 
    for i in range(0,len(x)): 
        x[i]=x[i]+x[i]+x[i] 
    x = ''.join(x) 
    return x 

我可以建议两个备选答案吗:

-> 删除 range(len()) ,它在遍历列表时对我来说总是很奇怪:

def triple(text): 
    x=list(text) 
    for i, c in enumerate(x): 
        x[i] = c*3 
    return ''.join(x) 

-> 使用理解:

def triple(text): 
    return ''.join(c*3 for c in text)