Python中的三倍运算产生的是列表而不是字符串

2024-10-01 02:22:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着写些代码把一个单词的每个字母增加三倍。所以hello变成了hheelllooo等等。我可以做到(通过另一种方法)。你知道吗

我的问题是。。。为什么下面的代码不起作用?当我测试函数时,它似乎输出一个列表而不是一个字符串,我不知道为什么。我以为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

Tags: 方法字符串代码texthello列表def字母
3条回答

''.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)

因为您将列表转换为字符串,但没有将其保存为任何变量,并且您正在返回列表iteslf

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

或者

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
def tripleGenerate(myStr):
    triplestr = ""
    for i in range(0,len(myStr)):
        triplestr += (myStr[i]*3)

    return triplestr
  1. myStr基本上就是您的字符串,例如:(“hello”)
  2. 在此之后,我初始化了一个新的字符串tripleStr来存储三元组
  3. 在循环中,我首先通过执行(myStr[I]*3)生成三元组,然后将这些三元组连接到triplestr变量中。你知道吗

相关问题 更多 >