如何将列表中的一个字符串替换为两个相同的字符串?

2024-09-27 00:19:14 发布

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

我仍然是python的初学者,我正在尝试创建一个函数,该函数接受字符串列表作为参数,并用每个字符串的副本替换每个字符串。我的代码有点问题

我能够复制每个字符串,但我遇到了麻烦,因为每个单词都在一个字符串中,而我的原始列表正在打印blist

任何帮助或指导都将不胜感激

这就是我到目前为止所做的:

blist = []

def double_list(alist):
    for i in alist:
        blist.append(i*2)
    return blist

print('original list: ',double_list(['how','are','you?']))
print('double list: ',blist)

输出:

original list:  ['howhow', 'areare', 'you?you?']
double list:  ['howhow', 'areare', 'you?you?']

预期产出:

original list:  ['how', 'are', 'you?']
double list:  ['how', 'how', 'are', 'are', 'you?', 'you?']

Tags: 函数字符串you列表arelisthowdouble
3条回答

只需使用extend()-方法,即可将两个列表组合在一起

您还必须更改打印语句,因为否则您只能打印列表的复制版本,而不是原始版本

因此,我们将通过一个列表扩展“blist”,该列表包含2x所需字符串

代码应该如下所示:

blist = []

def double_list(alist):
   for word in alist: 
      blist.extend([word]*2)
   return blist

original_list = ['how','are','you?']
print('original list: ', original_list)
print('double list: ', double_list(original_list)) 

您正在将字符串添加到一起。只需附加两次

blist = []

def double_list(alist):
    for i in alist:
        blist.append(i)
        blist.append(i)
    return blist

print('original list: ',double_list(['how','are','you?']))
print('double list: ',blist)

我相信有更好的方法,但这有助于更好地理解解决方案

如果要使用* 2习惯用法,可以使用extend()并向其传递一个列表,其中包含两个由[i] * 2组成的项

例如:

def double_list(alist):
    blist = []
    for i in alist:
        blist.extend([i]*2)
    return blist

orig = ['how','are','you?']
print('double list: ',double_list(orig))
# double list:  ['how', 'how', 'are', 'are', 'you?', 'you?']

注意:在original list: ['howhow', 'areare', 'you?you?']中获得双精度的原因是,您正在打印函数的返回值,该值不是原始列表

相关问题 更多 >

    热门问题