input: Write a function to predict the class labels of a given set of data. The function should load a dataset from a specified URL, split the dataset into features and label, train a decision tree classifier on the dataset, and then predict the class label for a new input data.
  assert predict([5.1, 3.5, 1.4, 0.2])==[0]
  assert predict([7.0, 3.2, 4.7, 1.4])==[1]
  assert predict([6.3, 3.3, 6.0, 2.5])==[2]
output: def predict(new_data):
      import pandas as pd
      from sklearn.model_selection import train_test_split
      from sklearn.tree import DecisionTreeClassifier
      url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
      column_names = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']
      data = pd.read_csv(url, header=None, names=column_names)
      X = data.iloc[:, :-1]
      y = data.iloc[:, -1]
      X_train, _, y_train, _ = train_test_split(X, y, test_size=0.2, random_state=42)
      clf = DecisionTreeClassifier()
      clf.fit(X_train, y_train)
      return clf.predict([new_data]).tolist()