Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 637
1

Куда пропадает переменная

22.09.2018, 23:11. Показов 2229. Ответов 41
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
скажите почему пропадает переменная my_cont в третей строке.
Python
1
2
3
4
5
6
7
for d in cont:
             my_count=d.count(d[1])
             if my_count<=1000:
              var_dump(my_count)
                bad_ip.update({'ip',d[1]})
                bad_ip.update({'count',my_count})
var_dump(my_count)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2018, 23:11
Ответы с готовыми решениями:

Куда пропадает ИЦ?
Вот уж действительно обидно, когда работаешь над своим ресурсом, находишь новые контакты, меняешься...

Куда пропадает память?
Пропадает память после выхода в интернет,хоть и чищу сам браузер,и чищу CCleanerom,а память...

Куда пропадает скорость?
Всем привет! Сегодня переустановил Windows 7 и скорость интернета заметно снизилась(до этого стояла...

Куда пропадает все?
Беру значения из Тable записываю в listbox(он на второй форме,а table на первой!),все работает но...

Видеопамять куда-то пропадает!
у меня MSI GTX 970 ! недавно прошёл на высоких call of duty black ops 3 с 70-90 фпс без проблем,...

41
21 / 17 / 6
Регистрация: 20.09.2018
Сообщений: 51
Записей в блоге: 1
22.09.2018, 23:44 2
можно весь код, кстати у тебя отступы неправильные
Python
1
2
3
4
5
6
7
for d in cont:
    my_count=  d.count(d[1])
    if my_count <= 1000 : 
        var_dump(my_count)
        bad_ip.update({'ip', d[1]})
        bad_ip.update({'count', my_count})
var_dump(my_count)
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
23.09.2018, 01:03 3
Цитата Сообщение от saladdd Посмотреть сообщение
bad_ip.update({'ip',d[1]})
А чего вы голову мне морочили если у вас bad_ip множество, а не словарь? У него тоже есть метод update, только работает он по другому, чем update у словаря.
Интересно, как собираетесь с ним работать, если множество не подходит для ваших целей... Оно не создает вам структуры вида ключ=значение. Множество хранит только значения и только уникальные.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 637
23.09.2018, 20:24  [ТС] 4
Garry Galler, Словари
Словарь – это ассоциативный массив, или таблица хешей, содержащий
объекты, индексированные ключами. Чтобы создать словарь, последова-
тельность элементов необходимо заключить в фигурные скобки ({}), как
показано ниже:
Python
1
2
3
4
5
stock = {
“name” : “GOOG”,
“shares” : 100,
“price” : 490.10
}
Добавлено через 7 минут
Garry Galler, можества вот Множества
Множества используются для хранения неупорядоченных коллекций
объектов. Создаются множества с помощью функции set(), которой пере-
даются последовательности элементов, как показано ниже:
s = set([3,5,9,10]) # Создаст множество чисел
t = set(“Hello”)
# Создаст множество уникальных символов
В отличие от кортежей, множества являются неупорядоченными коллек-
циями и не предусматривают возможность доступа к элементам по число-
вому индексу. Более того, элементы множества никогда не повторяются.
Например, если поближе рассмотреть значения, полученные в предыду-
щем примере, можно заметить следующее:
>>> t
set([‘H’, ‘e’, ‘l’, ‘o’])

Добавлено через 1 минуту
hashell, разве есть всё работает может неправильно скопировал - извеняюсь утомился сильно.
Python
1
2
3
4
5
6
7
 for line in f:
      cont.append(line.replace(' - - ', ' ').split())
      for d in cont:
             my_count=d.count(d[1])
             if my_count<=1000:
                bad_ip.update({'ip',d[1]})
                bad_ip.update({'count',my_count})
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
23.09.2018, 20:32 5
У вас предыдущая тема как называлась? Ошибка при записи в словарь
А у вас оказывается множество. Вот я и писал тогда, что вы структуры данных путаете и непонятно чего в итоге хотите.
Вот чего вы хотите от записи
Python
1
2
bad_ip.update({'count', my_count})
bad_ip.update({'ip',d[1]}
Сколько раз ее не добавляй в set - у вас слово 'count' и 'ip', добавятся только единожды. Зачем тогда это нужно?

Отступы у вас неправильные, потому что разные.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 637
23.09.2018, 22:38  [ТС] 6
Garry Galler, но это ведь словарь.

Добавлено через 3 минуты
Garry Galler, а причём тут отступы?
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
23.09.2018, 23:26 7
Цитата Сообщение от saladdd Посмотреть сообщение
но это ведь словарь
{'count', my_count} это множество, и это set([1,2,3,4,5,6])
{'count':my_count} это словарь, и это словарь dict(key=value,key2=value2)

dict и set это конструкторы словаря и множества.
А еще у каждого из них есть литеральные выражения:
Python
1
2
x = {"k":1}    # литерал словаря
x = {"k",1}    # литерал множества
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>>> x=set(['H', 'e', 'l', 'o'])
>>> x
{'o', 'H', 'e', 'l'}
>>> type(x)
<class 'set'>
>>> x=set('Hello')
>>> x
{'o', 'H', 'e', 'l'}
>>> type(x)
<class 'set'>
>>> 
>>> x = {'H':'e', 'l':'o'}
>>> x
{'H': 'e', 'l': 'o'}
>>> type(x)
<class 'dict'>
>>> dict(enumerate('HELLO'))
{0: 'H', 1: 'E', 2: 'L', 3: 'L', 4: 'O'}
>>> 
>>>

Цитата Сообщение от saladdd Посмотреть сообщение
а причём тут отступы?
Некрасиво. Они должны быть одинаковыми везде, потому что в python по другому не пишут.
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 637
24.09.2018, 23:08  [ТС] 8
Garry Galler, двоеточие - упустил.

Добавлено через 15 минут
да а пробелы я честно говоря нередактировал если один отсуп меняешь всё каудато летит.

Добавлено через 2 минуты
Garry Galler, но тема немного не по этому вопросу создана, хотелось бы понять куда девается значение переменной
my_count
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
24.09.2018, 23:55 9
Цитата Сообщение от saladdd Посмотреть сообщение
хотелось бы понять куда девается значение переменной
Вы так и не раскрыли тайну своей структуры данных. Предлагаете погадать?
Если у вас set, то переменная просто никуда не вставляется, если она уже вставлена. Такой вот фокус -
Цитата Сообщение от saladdd Посмотреть сообщение
елементы множества никогда не повторяются
0
21 / 17 / 6
Регистрация: 20.09.2018
Сообщений: 51
Записей в блоге: 1
25.09.2018, 09:43 10
можешь просто выложить код целиком, никто его за свой выдавать не будет
здесь нет экстрасенсов и гадать здесь никто не будет
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 637
26.09.2018, 20:44  [ТС] 11
hashell, Garry Galler,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import string
import sys
import datetime
from var_dump import var_dump
 
 
bad_ip={'ip','count'}
cont=[]
mystring=[]
file_content={}
with open('access_log','r') as f:
 for line in f:
      cont.append(line.replace(' - - ', ' ').split())
      for d in cont:
             my_count=d.count(d[1])
             if my_count<=1000:
                bad_ip.update({'ip',d[1]})
                bad_ip.update({'count':my_count})
              
 
 
 
 
 
 
 
b=datetime.datetime.now()
var_dump(my_count)
Добавлено через 44 секунды
Garry Galler, в контексте какой структуры идёт речь?
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
26.09.2018, 22:06 12
... Дождались. Барабанная дробь. Итак - вопрос на миллион:
Цитата Сообщение от saladdd Посмотреть сообщение
почему пропадает переменная my_cont
Отвечает обладатель хрустальной совы будущего сезона:
Потому что у вас set, а вы апдейтите его словарем.
Так нельзя делать.
Скорей всего, никто из присутствующих здесь ни разу даже не пытался сделать то, что делаете вы: засунуть в set - словарь.
Python
1
2
3
4
5
6
7
>>> x=set()
>>> x.add({"key":'value'})
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    x.add({"key":'value'})
TypeError: unhashable type: 'dict'
>>>
Как видите, это невозможно. Но метод update (о чем я даже не подозревал), ведет себя иначе и позволяет закинуть в set ключ.
Только ключ. Если, честно, для меня это непонятное поведение. Но вы должны понять одно - не надо так делать.
Нельзя совать в set - dict. Set принимает только неизменяемые объекты.
Получится вот так:
Python
1
2
3
4
5
6
7
8
>>> bad_ip={'ip','count'}
>>> bad_ip.update({'count':1})
>>> bad_ip
{'count', 'ip'}
>>> bad_ip.update({'count1':1})
>>> bad_ip
{'count', 'ip', 'count1'}
>>>
1
Модератор
Эксперт NIX
8424 / 3248 / 105
Регистрация: 24.05.2011
Сообщений: 14,447
Записей в блоге: 8
27.09.2018, 16:20 13
Цитата Сообщение от saladdd Посмотреть сообщение
Python
1
for d in cont:
Точно cont? А не count, часом?
0
165 / 114 / 59
Регистрация: 12.07.2018
Сообщений: 277
27.09.2018, 19:23 14
Цитата Сообщение от NeoMatrix Посмотреть сообщение
Точно cont? А не count, часом?
Нет, здесь ошибки нет. У ТС в коде над этим циклом заполнение cont происходит
Python
1
2
 for line in f:
      cont.append(line.replace(' - - ', ' ').split())
0
Модератор
Эксперт NIX
8424 / 3248 / 105
Регистрация: 24.05.2011
Сообщений: 14,447
Записей в блоге: 8
27.09.2018, 19:47 15
Цитата Сообщение от Бард Посмотреть сообщение
Нет, здесь ошибки нет.
Хорошо. Я вполглаза просматривал - подумал на ошибку в сиснтаксисе (опечатку).
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 637
27.09.2018, 20:07  [ТС] 16
NeoMatrix, Бард, Garry Galler,
Python
1
my_count
простите , что ввёл вас в заблуждение , вот эта переменная.
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
27.09.2018, 20:20 17
Цитата Сообщение от saladdd Посмотреть сообщение
вот эта переменная
Я вам написал, почему ее значение никуда не попадает. Вы прочитали?
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 637
28.09.2018, 00:12  [ТС] 18
NeoMatrix, но там же написано cont
0
1 / 1 / 1
Регистрация: 23.04.2014
Сообщений: 637
29.09.2018, 20:50  [ТС] 19
Garry Galler, вот теперь разобрался спасибо большое.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
mport string
import sys
import datetime
from var_dump import var_dump
 
 
bad_ip=dict()
cont=[]
mystring=[]
file_content={}
with open('access_log','r') as f:
 for line in f:
      cont.append(line.replace(' - - ', ' ').split())
      for d in cont:
             my_count=d.count(d[1])
             if my_count<=1000:
                bad_ip['ip']=d[1]
                bad_ip['count']=my_count
              
 
 
 
 
 
 
 
b=datetime.datetime.now()
var_dump(my_count)
Добавлено через 14 минут
Garry Galler, вот только я хотел бы разгадать загадку теперь с переменной
Python
1
my_count
почему-то вот тут она пустая
Python
1
bad_ip['count']=my_count
а вот тут в ней есть значение
Python
1
2
3
 for d in cont:
             my_count=d.count(d[1])
             if my_count<=1000:
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
29.09.2018, 22:16 20
Цитата Сообщение от saladdd Посмотреть сообщение
я хотел бы разгадать загадку теперь с переменной
Есть такое понятие на стэковерфлоу (и вообще, на любых форумах по программированию, где что-то спрашивают) как минимальный воспроизводимый пример.
Я могу запустить ваш код? Нет. Потому что у меня нет исходных данных. Тогда как я могу ответить на вопрос?
Всегда давайте в своей теме пример вместе с какой-то частью исходных данных, чтобы можно было его запустить просто скопировав. И тогда вы будет получать четкие ответы по коду. Иначе вас будут посылать на форум экстрасенсов.
0
29.09.2018, 22:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2018, 22:16
Помогаю со студенческими работами здесь

Переменная пропадает.
Дело вот в чем: Переменная total1 при запуске ехе выдает 0 так-как и обьявленна она равной нулю. а...

Пропадает переменная
Доброго времени суток, я новичок в этом деле и поэтому проблема может быть до простоты глупой....

Куда пропадает место на диске С:?
Куда пропадает место на диске С:? из 58,5 Гб осталось 4,5 Гб ССleaner показывает максимально...

куда $_POST[vseklass] пропадает?
на одной страничке выбираю № кабинета &lt;form action=&quot;redaktirov_kabineti.php&quot; method=&quot;POST&quot;...

Куда-то пропадает место на диске С
Здравствуйте! С недавнего времени память на диске &quot;С&quot; чем-то заполняется, было 8ГБ свободной, стало...

Куда-то пропадает 8гб оперативы
Купил около двух недель ноут новый. С 16гб оперативы, недавно стал замечать что у меня занято от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru