"给定一个数字列表和一个因子(也是一个数字(,创建一个新列表,由列表中的每个数字乘以因子组成"
然后打印新列表。
我几乎肯定的不是他们想要如何完成练习,我只是对这个问题有点困惑。 我不确定他们是否想说出我在 for 循环中工作的另一个变量,或者什么。 解释会很好。:)
我的代码:
numbers = [3, 4, 16, 12, -1]
empty_list=[]
for i in numbers:
empty_list.append(i * 3)
print (empty_list)
似乎您的解决方案绝对没问题,无论如何,这里有几种不同的可能方法来解决该问题。
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
列表理解是解决问题的更好方法,而不是使用结构化的 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))