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

我仍然是 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?']


侃侃无极
浏览 224回答 3
3回答

梵蒂冈之花

如果您想使用该* 2习惯用法,您可以使用extend()并向其传递一个包含由 . 制成的两个项目的列表[i] * 2。例如:def double_list(alist):    blist = []    for i in alist:        blist.extend([i]*2)    return blistorig = ['how','are','you?']print('double list: ',double_list(orig))# double list:  ['how', 'how', 'are', 'are', 'you?', 'you?']注意:您获取双精度值的原因original list:  ['howhow', 'areare', 'you?you?'] 是因为您正在打印函数的返回值,而不是原始列表。

MYYA

您正在将字符串添加在一起。只需将它们附加两次即可。blist = []def double_list(alist):    for i in alist:        blist.append(i)        blist.append(i)    return blistprint('original list: ',double_list(['how','are','you?']))print('double list: ',blist)我确信有更好的方法来做到这一点,但这有助于更好地理解解决方案。

扬帆大鱼

只需使用extend()方法,它允许您将两个列表组合在一起。此外,您还必须更改打印语句,因为否则您将只打印出列表的“重复”版本,而不是原始版本。因此,我们将通过一个包含2x 所需字符串的列表来扩展“blist”。代码应如下所示:blist = []def double_list(alist):   for word in alist:       blist.extend([word]*2)   return blistoriginal_list = ['how','are','you?']print('original list: ', original_list)print('double list: ', double_list(original_list)) 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python