#python-3.x #merge #sublist
#python-3.x #слияние #подсписок
Вопрос:
Проблема:
- найдите текст: [«X-DSPAM-Достоверность: 0,8475»]
- Извлеките 5 цифр (например: 0,8475) из следующей ссылки (текстовый файл):
- вычислите среднее значение без функции sum… https://www.py4e.com/code3/mbox-short.txt ?PHPSESSID=f3eb9b379b33fa412909c5123798b393
Попытка: пропустить любые строки, которые не начинаются с ‘X-DSPAM-Confidence:’ найдите ключевые слова и найдите 5-значные цифры, преобразуйте их в строку, а затем преобразуйте их в список с плавающей запятой, однако при попытке использовать цикл for он не суммировал все числа с плавающей запятой в списке. Я думаю, проблема в том, что python считает добавление 0 к каждой итерации в каждом списке, поэтому для решения этой проблемы мне нужно объединить подсписки в num1, но я не знаю никакого простого способа сделать это … (и это задание должно быть удобным для начинающих, поэтому я предполагаю, что не должно бытьнужен расширенный / сложный код на python?) Пожалуйста, помогите!
fname = input("Enter file name: ")
fh = open(fname)
count = 0
for line in fh:
if not line.startswith("X-DSPAM-Confidence:"):
continue
count = count 1
findpos = line.find(':')
#print(findpos, count)
values = line[findpos 2:26]
num = str(values).rstrip()
num1 = [float(num)]
add = 0
for i in num1:
add = i add
print(type(num1), add)
print("Done")
result:
Enter file name: mbox-short.txt
<class 'list'> 0.8475
<class 'list'> 0.6178
<class 'list'> 0.6961
<class 'list'> 0.7565
<class 'list'> 0.7626
<class 'list'> 0.7556
<class 'list'> 0.7002
<class 'list'> 0.7615
<class 'list'> 0.7601
<class 'list'> 0.7605
<class 'list'> 0.6959
<class 'list'> 0.7606
<class 'list'> 0.7559
<class 'list'> 0.7605
<class 'list'> 0.6932
<class 'list'> 0.7558
<class 'list'> 0.6526
<class 'list'> 0.6948
<class 'list'> 0.6528
<class 'list'> 0.7002
<class 'list'> 0.7554
<class 'list'> 0.6956
<class 'list'> 0.6959
<class 'list'> 0.7556
<class 'list'> 0.9846
<class 'list'> 0.8509
<class 'list'> 0.9907
Done
Комментарии:
1. Вам не нужно управлять списком, вам просто нужно суммировать все значения и отслеживать их количество.
2. спасибо, исправлено, проблема заключается в том, что числа не имеют надлежащего хранилища, поэтому, присваивая числа новой переменной, делает трюк, т. Е.
if count is 1: num1=values
И сделайте это для 27 чисел, теперь python может вычислять среднее значение!