Я хочу создать списки с их именами, включая переменную, но не смог, может кто-нибудь что-то предложить - PullRequest
0 голосов
/ 30 января 2020
VC_I=[1,2,4,3]

for i in range(len(VC_I)):
  print(VC_i=[])

Ошибка типа: 'VC_i' является недопустимым аргументом ключевого слова для этой функции

Ответы [ 4 ]

0 голосов
/ 30 января 2020

Я думаю, что вы хотите создать список, такой как VC_1, VC_2, ... проверьте этот код

VC_I=[1,2,4,3,4,5,6,7,8]
PAYLOAD_IN=[ 'a2','123','21','1a','ae','23','12','ef'] 

for i in VC_I:
  name = 'VC_'+str(i)        
  print(name)                # here name variable is string
  name = list()
  print(name)                # here name variable is list
  print(type(name))          # checking data type of variable name

Ответьте на свой конкретный c вопрос

for i, j in zip(VC_I, PAYLOAD_IN):
  name = 'VC_' + str(i)
  name = list()
  name.append(j)
  print(name)
0 голосов
/ 30 января 2020

Вам нужно использовать специальный модуль для получения имени переменной. Смотрите здесь: Получение имени переменной в виде строки

Кстати, чтобы ваш пример правильно итерировал только значения, сделайте следующее:

VC_I=[1,2,4,3]
for i in range(len(VC_I)): print(VC_I[i])
0 голосов
/ 30 января 2020

Не знаю, нужно ли вам это, но вы можете использовать locals() для этого. Например, учитывая ваш код:

VC_I=[1,2,4,3]
names_dict = dict(locals()) #Preserve a copy of all local variables
for key, val in names_dict.items():
    if val == VC_I:
        print('The variable name is:', key)

, который будет выводиться, как вы уже догадались:

The variable name is: VC_I

Однако, это будет работать, только если вы работаете с локальными переменными. Это также не будет работать для переменных с точно такими же значениями. Обратите внимание.

edit Вы даже можете сделать это:

for key, val in names_dict.items():
    if val == VC_I:
        print(key, ' = ', val)

, что должно дать вам:

VC_I = [1, 2, 3, 4]
0 голосов
/ 30 января 2020

Почему вы просто не используете словарь для этой цели?

VC_I=[1,2,4,3]
x = {}
for i in range(len(VC_I)):
    x[VC_I[i]] = [value, you, want]

Для доступа используйте:

print(x["key name"])

Чтобы сделать то, что вы хотели,

x = dict(zip(VC_I, PAYLOAD_IN))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...