复制列表的一部分

时间:2017-11-05 12:48:48

标签: python

如何仅将列表的一部分复制到另一个列表。例如,如果列表的长度为105,但只需将30个随机选择的元素复制到新列表中。 这是我写的代码

for x in range (104):
            if len(trainingSet1)>30:
                  break
            trainingSet1[x]= (trainingSet[random.randint(1,103)])

但它一直给出这个错误:

 Traceback (most recent call last):
  File "Q1_2.py", line 82, in <module>
    main()
  File "Q1_2.py", line 72, in main
    trainingSet1[x]= (trainingSet[random.randint(1,103)])
IndexError: list index out of range

2 个答案:

答案 0 :(得分:1)

错误可能在这里:

trainingSet1[x] = ...

除非您已填充trainingSet1,否则您正尝试分配给trainingSet1.append(...) 一个尚不存在的元素。使用if (pat1[r][c]!=' ' || pat2[r][c]!=' ') { pat1[r][c] == pat2[r][c]; } 代替。

答案 1 :(得分:1)

将trainingSet1初始化为trainingSet1 =[],然后尝试将值附加到该值而不是使用trainingSet1[x] = value。如果您真的想像在代码中那样分配,可以先将数组初始化为trainingSet1 = [0] * 30。这将为列表分配30 0&#39;稍后将替换为您随机选择的值。