В трассировке стека ошибки всегда указывается, в какой строке произошла ошибка, но по вашему сообщению эта информация необходима для лучшего понимания проблемы, но с учетом предоставленной вами информации я могу сказать, что проблема возниклакогда что-то пыталось выполнить итерацию над None, в этом случае эта операция недопустима, поскольку NoneType не является итеративным.
Эта ситуация может происходить в следующих местах в вашем коде:
lines = [item.strip("\n") for item in lines]
если строк нет N
for item in lines:
если строк нет
item = tuple(float(items) for items in item)
если элемент отсутствует.
Первые две, вам необходимо убедиться, что имя файла указывает нафайл, который существует, иначе readlines () ничего не будет читать
Теперь, для того, что вы пытаетесь достичь, вы идете в правильном направлении. У меня есть несколько собственных вопросов, хотя. Почему newList является набором? Я бы полностью использовал список там для простоты. Я предполагаю, что теперь вы будете использовать список, остальное решение может выглядеть примерно так:
>>> newList = [1.0, 5.0, 2.0, 8.0, 3.5, 12.5]
>>> it = iter(newList)
>>> solution = {(x,y) for x,y in zip(it,it)}
>>> solution
set([(1.0, 5.0), (3.5, 12.5), (2.0, 8.0)])
Надеюсь, это помогло вам.