Как создать список кортежей с помощью цикла for

#python

Вопрос:

Я results заполнил test_score , но как я могу добавить train_score results , чтобы это был список из 10 кортежей, таких как: ( train_score , test_score )?

 import numpy as np
import pandas as pd
from sklearn import tree
from sklearn.tree import DecisionTreeClassifier

results = []

for i in list(range(1, 11)):
    
    clf = DecisionTreeClassifier(max_depth = i, random_state=0).fit(X_train, y_train)
    
    test_score = clf.score(X_test, y_test)
    train_score = clf.score(X_train, y_train)
    
    results.append(test_score)
    
results
 

Комментарии:

1. Я думаю, что список(диапазон()) не нужен, диапазон() будет работать нормально.

2. Это прямо в твоем вопросе: ты пишешь (train_score, test_score) .

Ответ №1:

Вы можете сделать что-то вроде:

 ...
results.append((train_score, test_score))
...
 

Ответ №2:

Добавьте кортеж в свой список :
results.append((train_score,test_score))

Кроме того, обратите внимание, что for i in list(range(1, 11)) в цикле for нет необходимости.

for i in range(1, 11) этого достаточно, так как он возвращает объект диапазона, который можно повторять.

Ответ №3:

Просто создайте экземпляр кортежа до

 t = (test_score, train_score)
results.append(t)