代码之家  ›  专栏  ›  技术社区  ›  Blue

在python中乘法列表——对练习的问题感到困惑

  •  0
  • Blue  · 技术社区  · 5 年前

    给定一个数字列表和一个因子(也是一个数字),创建一个由列表中的每个数字乘以因子组成的新列表

    然后打印新列表。

    我几乎可以肯定的是,他们不想这样做,我只是对这个问题有点困惑。。 我不确定他们是否想说我在for循环中工作的另一个变量,或者什么。 解释会很好:)

    我的代码:

    numbers = [3, 4, 16, 12, -1]
    empty_list=[]
    
    for i in numbers: 
        empty_list.append(i * 3)
    print (empty_list)
    
    0 回复  |  直到 5 年前
        1
  •  0
  •   Isdj    5 年前

    看来你的解决方案绝对不错,不管怎样,这里有一些不同的可能方法来解决这个问题。

    1-循环,就像你做的那样:

    def multiply_lst_1(lst,n):
        new_lst = []
        for val in lst:
            new_lst.append(val * n)
        print(new_lst)
        return new_lst
    

    2-列表理解:

    def multiply_lst_2(lst,n):
        new_lst = [n * val for val in lst]
        print(new_lst)
        return new_lst
    

    3-地图:

    def multiply_list_3(lst,n):
        new_lst = list(map(lambda x: n * x, lst))
        print(new_lst)
        return new_lst
    
        2
  •  0
  •   Swati Srivastava    5 年前

    列表理解是解决问题的更好方法,而不是使用结构化的for循环,即。,

    newlist = [i * factor for i in original_list]
    

    for i in original_list:
       newlist.append(i * factor)
    

    此外,熊猫可以用来解决这个问题,因为

    n = pandas.Series(original_list)
    newlist = (s * factor).tolist()
    

    Numpy也可以用于此

    lis = numpy.array(original_list)
    newlist = lis * factor
    

    你也可以在这里使用map()函数

    newlist = list(map((factor).__mul__, original_list))
    
    推荐文章