字符串重复的字符

时间:2014-05-08 15:16:57

标签: python string repeat

你能告诉我如何在python中使用for循环重复一个字符串中的每个字符吗?我的进展是:

def double(str):
    for i in range(len(str)):
        return i * 2

,这只返回重复字符串的第一个字母

5 个答案:

答案 0 :(得分:2)

我相信你想按顺序打印输入字符串的每个字符两次。您尝试的问题是您使用return。您只想返回最后一个字符串,而不仅仅是循环内部一个字符的重复。所以你希望你的return语句在for循环之外。

因为这听起来像是一个家庭作业问题,所以在继续下面之前,试着弄清楚如何做到这一点。

仍然坚持?

按顺序打印字符串中的每个字符两次:

def double(str):
    outstr = ''
    for character in str:
        outstr = outstr + char + char
    return outstr

不使用for循环:

def double(str):
    return ''.join([c+c for c in str])

答案 1 :(得分:1)

常规变体,返回字符串,重复原始字符串 n 次中的每个字符:

def multichar(text, n):
    return ''.join([x * n for x in text])

<强>解释

''.join(...) - 将(...)中的所有内容粘合成一个,不带空格,即''.join('a', 'b', 'c')将返回'abc'

' '.join('a', 'b', 'c')将返回'a b c'

'-'.join('a', 'b', 'c')将返回'a-b-c'

...你明白了:)

[x * n ...] - 重复x n次,即'a' * 3给出'aaa'

[... for x in text] - 正常for循环 - 遍历text中的每个元素。

普通英语,代码的最后一行:

列表中的每个元素都没有空格,通过xn的每个x重复text >>> multichar('Hello', 2) 次来生成。

示例

>>> 'HHeelllloo'

将返回:

    iv_profile_pic.setOnClickListener(new  View.OnClickListener() {//iv_profile_pic is an ImageView
        @Override
        public void onClick(View view) {
            Intent i=new Intent(MainActivity.this,profile_pic_chooser.class);
            i.setFlags(0);
            MainActivity.this.startActivityForResult(i, 999);

            Toast.makeText(getApplicationContext(),"Reached",Toast.LENGTH_SHORT).show();

        }
    });

答案 2 :(得分:1)

给定一个字符串,下面的代码借助功能和while循环将字符串中的每个原始字符重复两次。 res是一个列表,用于存储字符串的双精度字符。 “” .join()被调用以连接列表。 原始字符重复的次数可以更改。 这是代码段。

declare @p_total int
select @p_total = count(*) from #resultsBeforeSort

select [Count] = @p_total,
       [HasPreviousPage] = (case when @p_skipFirst > 0 then 1 else 0 end),
       [HasNextPage] = (case when @p_total > @p_skipFirst + @p_first then 1 else 0 end)

select [RowIndex], Col1, Col2, Col3
  from #resultsBeforeSort
  order by Column1, Column2 desc, RowIndex
  rows limit @p_first offset @p_skipFirst

paper_doll('paperdoll')

输出:

def paper_doll(text):
j = len(text)  
i=0
res=[]
while i<j :

    res.append(text[i]*2)
    i = i+1
result ="".join(res)
print(result)

欢迎任何形式的反馈和建议。

答案 3 :(得分:0)

对现有代码进行最少的修改:

range(len))将遍历索引而不是实际字符,而yield代替return使其成为生成器,从而允许返回所有值)

def double(str):
    for i in str:
        yield i * 2

使用它:

str = 'This is a test'
''.join(double(str))

答案 4 :(得分:0)

str = input('Enter string: ')
char = " "
for i in char:
    char = char + i + i
print(char)