IndexError:列表索引超出范围2维列表

时间:2015-07-29 13:58:22

标签: python list

我收到此错误:

  

追踪(最近一次通话):     文件“C:/Python27/main.py”,第21行,in       矩阵[1] [1] .append(2)   IndexError:列表索引超出范围

这是我的代码

file = open("C:\\Python27\\test.txt", "r")

s1 = file.read();
s2 = file.read();

matrix = [[0 for x in range(len(s1))] for x in range(len(s2))]

matrix[1][1].append(2)
print matrix[1][1]

len(s1)len(s2)大于5

我尝试使用matrix[1][1] = 2代替matrix[1][1].append(2),但它不起作用。

那么我的错误是什么?

1 个答案:

答案 0 :(得分:3)

我打印len(s1)和len(s2)。它们可能不是你所期望的。如果你想设置矩阵的第1行第1列,你可以这样做:

var Parent = React.createClass({
  getInitialState : function () {
    return({validate : false});
  },
  click : function () {
    this.setState({validate : true});
  },
  done : function () {
    this.setState({validate : false});
  },
  render : function () {
    return (
      <div>
        <button onClick={this.click}>Validate children</button>
        <br/>
        <Child num={1} validate={this.state.validate} done={this.done}/>
        <Child num={2} validate={this.state.validate} done={this.done}/>
        <Child num={3} validate={this.state.validate} done={this.done}/>
      </div>
    );
  }
});

var Child = React.createClass({
  componentWillReceiveProps : function (nextProps) {
    if (nextProps.validate == true && this.props.validate == false) {
      var number = React.findDOMNode(this.refs.input).value;
      if (number >= 1 && number <= 10) {
        alert("Child " + this.props.num + " valid");
      } else {
        alert("Child " + this.props.num + " invalid");
      }
      this.props.done();
    }
  },
  render : function () {
    return (
      <div>
        <input type="number" min="1" max="20" ref='input'/>
      </div>
    );
  }
});

因为否则你试图将数字2附加到(1,1)处的元素,而不是列表。