В данном наборе данных мне нужно умножить значения из разных блоков друг на друга.Доступ к значениям из следующей строки внутри цикла для продолжения и разрыва?
Я хочу получить доступ к данным из следующей строки внутри цикла, а затем построить список и создать продукт, если значение блока соответствует, но примеры, которые я просмотрел до сих пор, не совсем помогают. Фактически, эти данные являются лишь частью больших данных, и мне нужно некоторое объяснение по любому предоставленному решению о том, как/почему он работает.
So,for X(set) I have to multiply: 0.25*0.1*0.83 (since they belong to same block
block X_set
2480 0.25
2480 0.1
2480 0.083
2651 0.43
2651 0.11
2651 0.23
Мой код выглядит следующим образом:
test_q = open("test_question.txt", "r+")
header = test_q.readline()
data_q = test_q.read().rstrip("\n")
product=1.0
value_list = []
row = data_q.split("\n")
for line in row:
block = line.split("\t")
X_list = block[1].split()
X_value = float(block[1])
value_list = value_list + X_list
product = product*X_value
print(value_list)
print(product)
Результат:
['0.25', '0.1', '0.083', '0.43', '0.11', '0.23']
2.2573925000000003e-05
Но, в печати я хочу
['0.25', '0.1', '0.083']
0.0002075
['0.43', '0.11', '0.23']
0.010879
Итак, я хочу получить доступ к значению индекса из следующей строки, чтобы цикл for мог продолжать или прерываться.
Я попытался с помощью доступа к значению блока из следующей строки:
for i in range(0, len(row)-1):
next_line = row[i+1]
Как я могу улучшить этот код?
Итак, как впрыскивать функцию break и continue внутри этой петли?
Я не хочу использовать фиксированное значение для блоков, так как это длинный файл и значение блока изменится.
Кроме того, строка с одинаковыми значениями блоков может быть не рядом друг с другом.
Кроме того, я не нуждаюсь в решении на пандах, так как это всего лишь часть большого файла, который является исключительным, заминированным с использованием цикла for-if-else.
Большое спасибо!
Что не получилось о своем решении? –
Я могу получить доступ к следующему набору строк и значений, используя метод 'for i in range'. Но я не могу разработать дополнительные условия, чтобы применять 'break' и' continue' для получения желаемых результатов. Можете ли вы внести какой-то вклад? – everestial007