Инициировать несколько переменных со значением Python - PullRequest
0 голосов
/ 05 февраля 2020

Я так долго работаю над JavaScript, C#, Java. В них мы можем инициировать несколько переменных с одинаковым значением;

var a, b, c = 0

ИЛИ

int a, b, c = 0

Пытается сделать то же самое в python, но не может этого сделать. Перепробовал много вещей вроде:

a = b = c = 0

он работает с int, но с list

enter image description here

но он создает ссылку другой переменной.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Я полагаю, вы просто хотите краткости, это может быть что-то:

(a,b,c) = ( [] ,[], [] )
a.append(1)
print(a)
print(b)

вывод:

[1]
[]
0 голосов
/ 05 февраля 2020

Я думаю, что самое близкое, что вы могли бы получить, это повторить список каким-либо способом. Поскольку Python, к сожалению, не имеет эквивалента repeatedly Clojure, вы можете сделать что-то с пониманием списка:

a, b, c = [[] for _ in range(3)]

Или создать свой собственный генератор, чтобы помочь здесь:

def repeatedly(f):
    while True:
        yield f()

a, b, c, *_ = repeatedly(list)

*_ здесь, к сожалению, требуется для хранения остальной части бесконечного списка.

Суть в том, что вы должны явно создавать несколько списков с помощью некоторых средств. Копия никогда не будет создана с помощью присвоения в Python. Если вам нужно несколько списков, вы должны создать несколько списков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...