为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

侃侃无极 2023-10-31 14:12:48
我仍然是 python 的初学者,我正在尝试创建一个函数,该函数接受字符串列表作为参数,并用每个字符串的副本替换每个字符串。我的代码有点问题..我能够复制每个字符串,但我遇到了麻烦,因为每个单词都在一个字符串中,而我的原始列表正在打印 blist。任何帮助或指导将不胜感激这是我到目前为止所拥有的:blist = []def double_list(alist):    for i in alist:        blist.append(i*2)    return blistprint('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?']
查看完整描述

3 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

如果您想使用该* 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?'] 是因为您正在打印函数的返回值,而不是原始列表。


查看完整回答
反对 回复 2023-10-31
?
MYYA

TA贡献1868条经验 获得超4个赞

您正在将字符串添加在一起。只需将它们附加两次即可。


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)

我确信有更好的方法来做到这一点,但这有助于更好地理解解决方案。


查看完整回答
反对 回复 2023-10-31
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

只需使用extend()方法,它允许您将两个列表组合在一起。


此外,您还必须更改打印语句,因为否则您将只打印出列表的“重复”版本,而不是原始版本。


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


代码应如下所示:


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)) 


查看完整回答
反对 回复 2023-10-31
  • 3 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信