【问题标题】:Modfication of single element in list inside function修改函数内部列表中的单个元素
【发布时间】:2019-03-10 23:24:44
【问题描述】:

我想通过在每个魔术师名称前添加“伟大”而不创建新列表来更改列表的单个元素。

magicians = ['john', 'dynamo', 'michael']

def make_great(list_name):
    ['great' + ' ' + magician for magician in list_name]

我知道问题出在哪里:这个“for in”更改了我的变量的名称,但没有将新变量添加到列表中。我也尝试使用“while”但没有效果。我期望的输出是:

magicians = ['great john', 'great dynamo', 'great michael'] 

【问题讨论】:

  • 您所缺少的只是return 关键字

标签: python list function


【解决方案1】:

试试这个:

magicians = [ "Great "+ item for item in magicians]

【讨论】:

    【解决方案2】:

    您可以使用map() 来执行此操作,非常高效。

    magicians = ['john', 'dynamo', 'michael']
    magicians = list(map(lambda x: "great " + x, magicians)))
    

    【讨论】:

      【解决方案3】:

      您可以通过使用新值更新每个成员来修改现有列表。 for循环会遍历magicians列表的每个成员,x的值用于访问列表中的每个位置。

      magicians = ['john', 'dynamo', 'michael']
      x = 0
      for magician in magicians:
          magicians[x] = "great {}".format(magician)
          x = x + 1
      
      print(magicians)
      

      【讨论】:

      • 您可以为此使用enumeratex, magician = enumerate(magicians)
      猜你喜欢
      • 2020-11-02
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      • 2015-04-16
      • 2015-01-31
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多