Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 05.12.2021
Сообщений: 4

Изменяется переменная, с которой не совершается операций

05.12.2021, 15:38. Показов 1318. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Вот есть такой код, выполняю его. и получаю, что переменная TT изменяется, хотя в коде ни каких операций с ней не совершается. Почему так?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
table1 = [['1INCH', 0.37, 0.62, 3], ['AAVE', 0.3, 0.69, 1]]
table2 = [['1INCH', 0.38, 0.64, 3], ['AbVE', 0.29, 0.8, 1]]
TT = table2
d = []
for c in table1 : d.extend(c)
 
print(TT)
for f in range(0, len(table2)):
    inde = d.index(table2[f][0]) if table2[f][0] in d else -1
    if inde>=0:
        ind = int(inde/4)
        if table2[f][1] > table1[ind][1]: table2[f][1] = str(table2[f][1])+'↑'
        elif table2[f][1] < table1[ind][1]:table2[f][1] = str(table2[f][1])+'↓'
        if table2[f][2] > table1[ind][2]: table2[f][2] = str(table2[f][2])+'↑'
        elif table2[f][2] < table1[ind][2]:table2[f][2] = str(table2[f][2])+'↓'
        if table2[f][3] > table1[ind][3]: table2[f][3] = str(table2[f][3])+'↑'
        elif table2[f][3] < table1[ind][3]:table2[f][3] = str(table2[f][3])+'↓'
    else : table2[f][0] = table2[f][0]+'+'
 
print(TT)

[['1INCH', 0.38, 0.64, 3], ['AbVE', 0.29, 0.8, 1]]
[['1INCH', '0.38↑', '0.64↑', 3], ['AbVE+', 0.29, 0.8, 1]]
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.12.2021, 15:38
Ответы с готовыми решениями:

Переменная не изменяется в игре но изменяется при выходе из неё в редактор
Есть скрипт, который создаёт объекты в определенной области void Update() { if (Time.time &gt; nextSpawn) { ...

Несмотря на то, что переменная С имеет тип long int, возведение, к примеру, 100 в степень 5 совершается неверн
Ребят, раньше программировал ( на уровне любителя ) только на скриптовых языках с динамической типизацией (в основном JS и Python), но так...

Переменная не изменяется
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class s3 :...

12
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
05.12.2021, 15:40
потому что изменяете table2
0
0 / 0 / 0
Регистрация: 05.12.2021
Сообщений: 4
05.12.2021, 15:42  [ТС]
так а разве операторы не линейно сверху вниз единожды выполняются?
0
290 / 170 / 92
Регистрация: 21.03.2016
Сообщений: 400
05.12.2021, 15:53
Лучший ответ Сообщение было отмечено weary1 как решение

Решение

Изучай основы Python

В этом случае объект один, ссылки разные.
Python
1
TT = table2
делай так, если хочеш копировать объект.
Python
1
TT = table2[:]
1
0 / 0 / 0
Регистрация: 05.12.2021
Сообщений: 4
05.12.2021, 15:58  [ТС]
Спасибо.
А какой это именно раздел к изучению?

Добавлено через 3 минуты
Тот же результат

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
table1 = [['1INCH', 0.37, 0.62, 3], ['AAVE', 0.3, 0.69, 1]]
table2 = [['1INCH', 0.38, 0.64, 3], ['AbVE', 0.29, 0.8, 1]]
TT = table2[:]
d = []
for c in table1 : d.extend(c)
 
print(TT)
for f in range(0, len(table2)):
    inde = d.index(table2[f][0]) if table2[f][0] in d else -1
    if inde>=0:
        ind = int(inde/4)
        if table2[f][1] > table1[ind][1]: table2[f][1] = str(table2[f][1])+'↑'
        elif table2[f][1] < table1[ind][1]:table2[f][1] = str(table2[f][1])+'↓'
        if table2[f][2] > table1[ind][2]: table2[f][2] = str(table2[f][2])+'↑'
        elif table2[f][2] < table1[ind][2]:table2[f][2] = str(table2[f][2])+'↓'
        if table2[f][3] > table1[ind][3]: table2[f][3] = str(table2[f][3])+'↑'
        elif table2[f][3] < table1[ind][3]:table2[f][3] = str(table2[f][3])+'↓'
    else : table2[f][0] = table2[f][0]+'+'
 
print(TT)
[['1INCH', 0.38, 0.64, 3], ['AbVE', 0.29, 0.8, 1]]
[['1INCH', '0.38↑', '0.64↑', 3], ['AbVE+', 0.29, 0.8, 1]]
0
290 / 170 / 92
Регистрация: 21.03.2016
Сообщений: 400
05.12.2021, 15:58
Обычно самым первым во всех книгах. О том что такое переменные в Python.
бывают изменяемые и неизменяемые. Списки относятся к изменяемым типам.
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
05.12.2021, 16:04
Лучший ответ Сообщение было отмечено weary1 как решение

Решение

Python
1
2
import copy
TT = copy.deepcopy(table2)
Добавлено через 56 секунд
Цитата Сообщение от Berbentsev Посмотреть сообщение
TT = table2[:]
это так не работает в данном случае
0
0 / 0 / 0
Регистрация: 05.12.2021
Сообщений: 4
05.12.2021, 16:05  [ТС]
Всем большое спасибо. Работает и плюс новые знания
0
290 / 170 / 92
Регистрация: 21.03.2016
Сообщений: 400
05.12.2021, 16:07
Цитата Сообщение от eaa Посмотреть сообщение
это так не работает в данном случае
Теперь я в ступоре. Срез вроде как новый объект создает.
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
05.12.2021, 16:10
Berbentsev, внутри списка тоже ведь списки.

Добавлено через 1 минуту
Python
1
2
3
4
5
6
7
8
a = [[1, 2], [3, 4]]
b = a[:]
b.append(2)
print(a)
print(b)
b[1][1] = 7
print(a)
print(b)
смотри

Добавлено через 17 секунд
Bash
1
2
3
4
[[1, 2], [3, 4]]
[[1, 2], [3, 4], 2]
[[1, 2], [3, 7]]
[[1, 2], [3, 7], 2]
0
05.12.2021, 16:14

Не по теме:

eaa, Спасибо, об этом я и не подумал.

0
6 / 6 / 0
Регистрация: 09.07.2021
Сообщений: 63
05.12.2021, 21:33
Можно еще так копировать
Python
1
TT = table2.copy()
Добавлено через 1 минуту
А еще можно с помощью циклов:
Python
1
2
3
TT = []
for i in table2:
    TT.append(i)
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
05.12.2021, 21:33
maxevtish0501, так тоже не правильно будет в данном случае.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.12.2021, 21:33
Помогаю со студенческими работами здесь

Не изменяется переменная
Здравствуйте! Не меняется переменная в методе paint(). Если буду выводить значения n в методе actionPerformed(ActionEvent arg0), то n...

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

Переменная не изменяется
Доброго времени суток ! Нужна ваша помощь. Вроде бы вопрос легкий, но не могу понять как сделать. Допустим есть код : ...

Не изменяется static переменная
...довольно странная проблема. в 2-х файлах инклудится один заголовочный файл, в нем объявлена переменная static int testvar = 1; но...

Глобальная Переменная Не Изменяется
Есть некоторый Unit, в котором просто прописан список глобальных переменных (часть из них сразу же при инициализации присвоила себе...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru