#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()
. Каждый раз, когда у вас есть несколько переменных с одним и тем же суффиксом, это обычно предполагает, что данные должны быть объединены вместе. Это ключевой момент. Остальное — это детали, которые нам не были хорошо объяснены. Удачи.