我必须编写一个以非空字符串作为输入的函数,该函数必须返回每隔一个字符([::2]
)乘以其索引(n
)乘以2,再加上2({ {1}})。
结果应该是这样的:
输入“红色”-结果“ rrrdddddd”
输入“ hello”-结果“ hhllllllooooooooo ...”
鉴于此前提,我尝试使用范围:
2n+2
但是之后,我真的不知道如何将“ 2n + 2”应用于每个索引,以及如何将其应用于字符串中的相应字母。
失败的审判如下:
Input_string = ["c","a","m","i","ó","n"]
print(input_string)
for index in range(len(input_string[::2])):
返回“ cmo cmocmocmo”。我希望得到类似“ cccmmmmmmmmoooooooooooonnnnnnnnnnnn”的结果
应该注意的是,在试验中,[:: 2]的索引从0到2(input_string = "camión"
for index in range(len(input_string[::2])):
n = index
m = input_string[::2]
print(n*m)
),而不是我所期望的交错0, 1, 2
。
有什么建议吗?
答案 0 :(得分:1)
您尝试过enumerate
,在给出列表l=['red', 'black', 'yellow']
的情况下,您可以使用以下功能
In[27]: def string_multiplier(l):
...: for i in l:
...: res=''
...: for i,v in enumerate(i[::2]):
...: res += v*(2*i+2)
...: print(res)
...:
In[28]: string_multiplier(l)
rrdddd
bbaaaakkkkkk
yylllloooooo
答案 1 :(得分:0)
请尝试以下解决方案:
test_string = "abcd"
def my_method(_string):
result = ""
for i in range(len(_string)):
result+=_string[i]*(2*i+2)
return result
my_method(test_string)
结果:“ aabbbbccccccdddddddd”
答案 2 :(得分:0)
我无法完全理解您的示例,
此代码将为您提供-
aaaacccccccceeeeeeeeeeeeeeee
1 * 2 + 2 = 4;
3 * 2 + 2 = 8;
考虑您的字符串从1开始
此输出
str1 = str[::2]
i = 1
for item in str1:
l = item*i*2
print(l,end="")
print(item*2,end="")
i = i+2