Я пытаюсь извлечь значения из двумерного списка, сохранить их и выполнить операции с ними, в принципе я получаю значения из 3 строк 145, 154 и 157, но проблема в том, что мне нужно go через весь список значений и извлеките следующие 3 строки, то есть одну строку каждые 145 строк, другую строку каждые 154 строки и еще одну строку каждые 157 строк, так что пока вы не закончите sh, читая весь список.
Образец path.dat
содержимого:
1 1.0000 0.258309E+03 0.387369E-05 0.493390E-05
2 2.0000 0.263808E+03 0.369658E-05 0.733094E-05
3 3.0000 0.264706E+03 0.351946E-05 0.817271E-05
4 5.0000 0.248739E+03 0.369658E-05 0.103040E-04
5 7.0000 0.234918E+03 0.351946E-05 0.119915E-04
6 10.0000 0.223707E+03 0.316522E-05 0.114943E-04
7 20.0000 0.215601E+03 0.298810E-05 0.941933E-05
8 30.0000 0.215591E+03 0.281098E-05 0.816810E-05
9 50.0000 0.213185E+03 0.281098E-05 0.476642E-05
10 70.0000 0.212209E+03 0.298810E-05 0.271009E-05
11 100.0000 0.213632E+03 0.263386E-05 0.783644E-06
12 125.0000 0.216840E+03 0.298810E-05 0.118827E-05
13 150.0000 0.215781E+03 0.351946E-05 0.103647E-05
14 175.0000 0.212525E+03 0.741608E-05 0.625855E-06
15 200.0000 0.210277E+03 0.129068E-04 0.377638E-06
16 225.0000 0.211308E+03 0.178661E-04 0.189399E-06
17 250.0000 0.213660E+03 0.233568E-04 0.998937E-07
18 300.0000 0.222232E+03 0.410687E-04 0.872060E-07
19 350.0000 0.231604E+03 0.108728E-03 0.800548E-07
20 400.0000 0.239510E+03 0.135473E-03 0.809775E-07
21 450.0000 0.246600E+03 0.144506E-03 0.793627E-07
22 500.0000 0.253364E+03 0.299663E-03 0.738263E-07
23 550.0000 0.259311E+03 0.679052E-03 0.717501E-07
24 600.0000 0.263732E+03 0.144970E-02 0.719808E-07
25 650.0000 0.267508E+03 0.195502E-02 0.749797E-07
26 700.0000 0.271180E+03 0.218368E-02 0.765945E-07
27 750.0000 0.273655E+03 0.174336E-02 0.768252E-07
28 775.0000 0.274527E+03 0.131243E-02 0.779786E-07
29 800.0000 0.275410E+03 0.941542E-03 0.798241E-07
30 825.0000 0.275755E+03 0.106978E-02 0.809775E-07
31 850.0000 0.275817E+03 0.234202E-02 0.816696E-07
32 875.0000 0.277539E+03 0.300675E-02 0.821309E-07
33 900.0000 0.279860E+03 0.305316E-02 0.823616E-07
34 925.0000 0.282089E+03 0.310133E-02 0.802855E-07
35 950.0000 0.283788E+03 0.317501E-02 0.701353E-07
36 975.0000 0.285004E+03 0.317767E-02 0.701353E-07
file = open('path.dat', 'r')
Я прочитал файл и go в список списков:
listA = []
for line in file.readlines():
a = line.split()
listA.append(a)
Пример из listA
:
listA = [
['5', '0.0000', '0.9992', '0.9999', '0.9999'],
['6', '0.0000', '0.9986', '0.9999', '0.9999'],
['7', '0.0000', '0.9977', '0.9997', '0.9999'],
['8', '0.0000', '0.9961', '0.9992', '0.9998'],
['9', '0.0000', '0.9945', '0.9987', '0.9997'],
['10', '0.0000', '0.9928', '0.9980', '0.9995'],
['11', '0.0000', '0.9914', '0.9975', '0.9994'],
['12', '0.0000', '0.9901', '0.9972', '0.9992'],
['13', '0.0000', '0.9889', '0.9968', '0.9990'],
['14', '0.0000', '0.9877', '0.9965', '0.9988'],
['15', '0.0000', '0.9864', '0.9962', '0.9986'],
['16', '0.0000', '0.9851', '0.9959', '0.9984'],
['17', '0.0000', '0.9836', '0.9956', '0.9982'],
['18', '0.0000', '0.9813', '0.9950', '0.9978'],
['19', '0.0000', '0.9783', '0.9943', '0.9973'],
['20', '0.0000', '0.9751', '0.9936', '0.9967'],
['21', '0.0000', '0.9713', '0.9927', '0.9959'],
['22', '0.0000', '0.9673', '0.9917', '0.9949'],
['23', '0.0000', '0.9634', '0.9906', '0.9939'],
['24', '0.0000', '0.9586', '0.9894', '0.9925'],
['25', '0.0000', '0.9517', '0.9876', '0.9904'],
['26', '0.0000', '0.9408', '0.9847', '0.9866'],
['27', '0.0000', '0.9280', '0.9806', '0.9811'],
['28', '0.0000', '0.9178', '0.9769', '0.9760'],
['29', '0.0000', '0.9117', '0.9745', '0.9727'],
['30', '0.0000', '0.9022', '0.9706', '0.9673'],
['31', '0.0000', '0.8916', '0.9656', '0.9603'],
['32', '0.0000', '0.8831', '0.9610', '0.9540'],
['33', '0.0000', '0.8696', '0.9532', '0.9433']
]
С этим я читаю файл .dat
или .txt
с 60000 строками и сохраняю его в двумерном списке. Чтобы извлечь нужные мне значения, я попробовал следующее:
for i in listA:
line_A = listA[145] # Here I declare that I want to extract line 145
line_B = listA[154] # Here I declare that I want to extract line 154
line_C = listA[157] # Here I declare that I want to extract line 157
Здесь я передаю строку в тип с плавающей запятой, чтобы иметь возможность работать с ними:
totalA = float(line_A[1]), float(line_A[2]), float(line_A[3])
totalB = float(line_B[1]), float(line_B[2]), float(line_B[3])
totalC = float(line_C[1]), float(line_C[2]), float(line_C[3])
print(totalA)
print(totalB)
print(totalC)
(48.47, 89.82, 101.94)
(48.37, 89.72, 101.79)
(6.17, 5.56, 8.49)
file.close()
В принципе , Я получаю нужные мне строки, 145, 154 и 157, я перемещаю их в плавающее число, чтобы работать со своими значениями, но мне нужно будет извлечь одну строку через каждые 145 строк, другую строку через каждые 154 строки и так далее, пока я не прочту весь список.