我正在尝试编写一些代码来将单词的每个字母增加三倍。所以你好变成了hhheeelllllllooo等。我可以做到(通过另一种方法(。
我的问题是...为什么以下代码不起作用?它似乎输出了一个列表而不是一个字符串 - 当我测试函数时 - 我不知道为什么。我以为加入可以将列表变成字符串?
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。返回一个列表。
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
- myStr基本上是你的字符串,例如:("hello"(
- 在此之后,我初始化了一个新的字符串 tripleStr 来存储三元组
- 在循环中,我首先通过 do (myStr[i] * 3( 生成三元组,然后将这些三元组连接到我的三元组变量中。