#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]