«как прочитать файл и умножить одно значение файла на другой индекс файла»

#python-3.x

#python-3.x

Вопрос:

прочитайте текстовые и json-файлы соответственно и загрузите данные в соответствующие переменные. Затем используйте цикл итерации для них, чтобы соответствующим образом вычислить силу, сохраняя результирующее значение в списке, которое в конце будет сохранено как json.

   import json


 acce = ''
   with open('accelration.txt', 'r') as js:
        for `line` in js:
        acce = line.split('  ')
print(acce)
['18,33,56,60,17,35,83,87,42,27,27,21,33,22,44,2']

mas = ''
 with open('mass.json', 'r') as js:
      for line in js:
      mas = line.split('  ')
print(mas)
 ['[1.8, 3.3, 5.6, 6.0, 1.7, 3.5, 8.3, 8.7, 4.2, 2.7, 0.27, 2.1, 3.3, 2.2, 0.44, 2.7]']

def force(a,m):
    for i in range(force):
    force.append(a*m)
print(force)
  

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

1. Пожалуйста, отформатируйте исходный код в вашем вопросе

2. [‘18,33,56,60,17,35,83,87,42,27,27,21,33,22,44,2’] [‘[1.8, 3.3, 5.6, 6.0, 1.7, 3.5, 8.3, 8.7, 4.2, 2.7, 0.27, 2.1, 3.3, 2.2, 0.44, 2.7]’] я прочитал fies, теперь я должен умножить их 1-е значение от единицы до 1-го индексаиз 2-го

3. В чем вопрос ?

4. у меня есть текстовый файл и файл json, я хочу прочитать их и умножить их с 1-го по первый индекс

5. Что вы подразумеваете под первым индексом? F=ma правильно, вам просто нужно умножить два списка?

Ответ №1:

Первый шаг — получить действительный список чисел для acce и mas .

На основе содержимого, которое вы опубликовали, accel это список, содержащий одну строку значений, разделенных запятыми. Итак, сначала вам нужно получить доступ к этой строке с accel[0] помощью, затем получить список значений с spli(,) помощью и преобразовать каждое значение в int :

 acce = ['18,33,56,60,17,35,83,87,42,27,27,21,33,22,44,2']

accel_list = [int(i) for i in acce[0].split(',')]
print(accel_list)
  

Вывод: [18, 33, 56, 60, 17, 35, 83, 87, 42, 27, 27, 21, 33, 22, 44, 2]

Далее mas приведен список, содержащий строку значений, разделенных запятыми, отформатированных в виде списка. Таким образом, вы можете использовать ast.literal_eval() для оценки этой строки в виде списка:

 import ast
mas = ['[1.8, 3.3, 5.6, 6.0, 1.7, 3.5, 8.3, 8.7, 4.2, 2.7, 0.27, 2.1, 3.3, 2.2, 0.44, 2.7]']
mass_list = ast.literal_eval(mas[0])
print(mass_list)
  

Вывод: [1.8, 3.3, 5.6, 6.0, 1.7, 3.5, 8.3, 8.7, 4.2, 2.7, 0.27, 2.1, 3.3, 2.2, 0.44, 2.7]

Теперь, когда у вас есть два допустимых списка ( accel_list и mass_list ), вы можете умножить их, чтобы получить силу, используя понимание списка:

 force = [a*m for a,m in zip(accel_list,mass_list)]
print(force)
  

Вывод: [32.4, 108.89999999999999, 313.59999999999997, 360.0, 28.9, 122.5, 688.9000000000001, 756.9, 176.4, 72.9, 7.290000000000001, 44.1, 108.89999999999999, 48.400000000000006, 19.36, 5.4]

Если вы хотите, чтобы результат был округлен, например, до 2 знаков после запятой, вы также можете сделать это внутри понимания списка:

 force = [round(a*m,2) for a,m in zip(accel_list,mass_list)]
print(force)
  

Вывод: [32.4, 108.9, 313.6, 360.0, 28.9, 122.5, 688.9, 756.9, 176.4, 72.9, 7.29, 44.1, 108.9, 48.4, 19.36, 5.4]