将字符串中的char乘以其索引号

时间:2019-03-14 13:54:22

标签: python function for-loop indexing

我必须编写一个以非空字符串作为输入的函数,该函数必须返回每隔一个字符([::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

有什么建议吗?

3 个答案:

答案 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