Чтение списка из добавления stringname

#python

#python

Вопрос:

У меня следующая проблема: я хочу сослаться на переменную из строки, чтобы я мог вызвать список.

Я ввожу пользователя в функцию def fetch(user). например, name1

Я хотел бы из name1 прочитать список name1_skiplist

или из name2 чтение name2_skiplist

 name1_skiplist = [('home', '/pic'),('home', '/jpg'),]
name2_skiplist = [('etc', '/pic'),('etc', '/jpg'),]
name3_skiplist = [('tmp', '/pic'),('tmp', '/jpg'),]

def fetch(user):
    joinedlist = []
    joinedlist = user   '_skiplist'
    if joinedlist:
        ....
 

Комментарии:

1. Почему бы вам не использовать dict, а затем сопоставить ваш ключ>

Ответ №1:

Dict больше подходит для вашего варианта использования для получения списка на основе вашего ключа.

   data = {'name1_skiplist': [('home', '/pic'), ('home', '/jpg'), ],
            'name2_skiplist': [('etc', '/pic'), ('etc', '/jpg'), ],
            'name3_skiplist': [('tmp', '/pic'), ('tmp', '/jpg'), ]}

def fetch(user):
    joinedlist = user   '_skiplist'
    result = data.get(joinedlist)
    return result
 

Комментарии:

1. Я получаю ошибку NameError: File «C:test2.py «, строка 1, в <module> data = {name1_skiplist: [(‘home’, ‘/pic’), (‘home’, ‘/jpg’), ], ошибка имени: имя ‘name1_skiplist’ не определено

Ответ №2:

Организуйте связанную информацию в коллекциях — структуры данных, такие как dicts, списки, кортежи, namedtuples, классы данных и т. Д. В вашем случае, предполагая, что я понимаю вашу цель, dict, вероятно, является достойным выбором. Например:

 skips = {
    'home': [('home', '/pic'), ('home', '/jpg')],
    'etc': [('etc', '/pic'), ('etc', '/jpg')],
    'tmp': [('tmp', '/pic'), ('tmp', '/jpg')],
}
 

Иллюстрированное использование:

 for name in skips:
    sks = skips[name]
    print(name, sks)
 

Комментарии:

1. Мне нужен только этот список от пользователя (fetch (user), и не все

2. @kulle. хотя ваш вопрос довольно неясен, но я подозреваю, что использование структуры данных облегчит написание fetch() . Каждый раз, когда у вас есть несколько переменных с одним и тем же суффиксом, это обычно предполагает, что данные должны быть объединены вместе. Это ключевой момент. Остальное — это детали, которые нам не были хорошо объяснены. Удачи.