Python 列表没有显示

Python 列表没有显示,python,python-3.x,Python,Python 3.x,我节目的最后一部分没有出现,有人能帮我吗 给定一个数字列表,将列表中的值规格化为范围[0,1]。首先在列表中找到最小值和最大值,即min_val和max_val。将列表中的每个元素x更改为新值y,s.t.y=(x-min_val)/(max_val-min_val)。打印修改后的列表。 例如,列表:[2,1,3,4]变为:[0.3333,0.0,0.666666,1.0] 您可以在程序中硬编码示例列表,但解决方案不应依赖于它。也就是说,如果我们只修改该列表并重新运行您的程序,它将根据新列表生成正

我节目的最后一部分没有出现,有人能帮我吗

给定一个数字列表,将列表中的值规格化为范围[0,1]。首先在列表中找到最小值和最大值,即min_val和max_val。将列表中的每个元素x更改为新值y,s.t.y=(x-min_val)/(max_val-min_val)。打印修改后的列表。 例如,列表:[2,1,3,4]变为:[0.3333,0.0,0.666666,1.0] 您可以在程序中硬编码示例列表,但解决方案不应依赖于它。也就是说,如果我们只修改该列表并重新运行您的程序,它将根据新列表生成正确的结果

mylist=[3,1,5,9,2]
n=len(mylist)
newlist=[]
print("orginal list is:",mylist)


min_val=min(mylist)
print("minimum value is:",min_val)

max_val=max(mylist)
print("maximum value is:",max_val)


for x in range(1+n+1,1):
    newlist=((x-min_val)/(max_val-min_val))
print(newlist)

在最后一部分中,您根本不需要对
mylist
的元素执行任何操作

你需要像这样的东西

newlist = [(x - min_val)/(max_val - min_val) for x in mylist]
使用显式
for
循环,就像您正在尝试的那样:

newlist = []
for x in mylist: # sic!
    newlist.append((x - min_val) / (max_val - min_val))

在最后一部分中,您根本不需要对
mylist
的元素执行任何操作

你需要像这样的东西

newlist = [(x - min_val)/(max_val - min_val) for x in mylist]
使用显式
for
循环,就像您正在尝试的那样:

newlist = []
for x in mylist: # sic!
    newlist.append((x - min_val) / (max_val - min_val))

首先,您正在为的每个步骤重新分配newlist

  for x in range(1+n+1,1):
      newlist.append((x-min_val)/(max_val-min_val))
  print(newlist)
然后,您很可能需要修复“range”函数[如果使用python2]; 最后,您可能需要将这些int转换为浮点,以避免整数除法[如果使用python2]

  for x in mylist:
      newlist.append(float(x-min_val)/(max_val-min_val))
  print(newlist)

首先,您正在为的每个步骤重新分配newlist

  for x in range(1+n+1,1):
      newlist.append((x-min_val)/(max_val-min_val))
  print(newlist)
然后,您很可能需要修复“range”函数[如果使用python2]; 最后,您可能需要将这些int转换为浮点,以避免整数除法[如果使用python2]

  for x in mylist:
      newlist.append(float(x-min_val)/(max_val-min_val))
  print(newlist)

这是Python3,不需要转换为
float
。啊@LevLevitsky,我没有注意到Python3标签,只是认为他在尝试使用较新的print()。为了在python2中实现这一点,它是必需的(这段代码在2.7中也适用)。如果我的“range”参数也不适用于Python3,我也不会感到惊讶(我从来没有学到所有的区别,但这一个会很有用)。它是Python3,不需要转换为
float
。啊@Levlevtsky,我没有注意到Python3标签,只是认为他在尝试使用更新的print()。为了在python2中实现这一点,它是必需的(这段代码在2.7中也适用)。如果我的“range”参数也不适用于Python3,我也不会感到惊讶(我从未了解到所有的差异,但这一个会很有用)。@atmatm 1)循环体从未执行过,因为
range
的第二个参数小于第一个(
start
stop
);2) 在循环中,
newlist
被(将)分配一个浮点值。所以最后(如果有什么事情发生的话)你会在
newlist
中有一个数字。3) 这个数字与初始列表没有任何关系,因为
x
范围内变化,即它是一个整数,而它应该获取
mylist
@atmatm 1)元素的值。循环体从未执行过,因为
范围
的第二个参数小于第一个参数(
start
stop
);2)在循环内部,
newlist
被(将)分配一个浮点值。所以最后(如果有什么事情发生的话)你会在
newlist
中有一个数字。3) 这个数字与初始列表没有任何关系,因为
x
范围内变化,即它是一个整数,而它应该获取
mylist
的元素值。