2017-06-15 39 views
0

我有一个列表的列表,我试图通过循环在第二个列表中创建一个基于第二个列表的两个元素的新值。从一个循环内的循环提取值

for line in input_list[1:]: 
i = 0 
for element in line: 
    if i == 13: 
     if line[7] > line[8]: 
      line[13] == 1 
     else: 
      line[13] == 0 
    i += 1 

我想根据行[7]大于行[8]的条件来设置行[13]的值。

该代码没有标记任何错误,因此在语法上它是正确的,但是当我打印新列表时,它不显示任何值(0或1)的行[13]。

任何帮助将不胜感激。

感谢,

埃德

+0

可以请你告诉我你的数据的列表,这可以帮助我解决这个问题。 – ammy

+0

'=='测试是否相等,使用单个'='进行赋值。 – Julien

+0

我强烈建议使用像“pylint”这样的检查器。它会警告你:'语句似乎没有任何效果(无意义的陈述)'。 – VPfB

回答

3

使用line[13] = 1而不是line[13] == 1==仅供比较。

+0

谢谢Rahul。大额头拍打在这里...... –

1

由于没有使用赋值运算符,它不会显示正确的输出。使用line[13] = 1代替line[13] == 1 例子: - list= [[1,2],[3,4,5]]

对于这个列表 -

for line in list[1:]: 
    i=0 
    for element in line: 
    if i==1: 
     if line[0]>line[1]: 
      line[1]=1 
     else: 
      line[1]=200 
    i=i+1 

它将工作

+1

拉胡尔已经指出了这一点 – kuro

0
for line in input_list[1:]: 
    i = 0 
    for element in line: 
     if i == 13: 
      if line[7] > line[8]: 
       line[13] = 1 
      else: 
       line[13] = 0 
     i += 1 

代码更新