Форум сайта python.su
0
Есть таблица xls, где левый и правый столбец равнозначны.
Как пример:
А В
BKR KRB
Задача для бота: при вводе значения из левого столбца он выдавал значение из правого и наоборот. Это некий словарь слов. Подскажите как реализовать данную функцию.
Офлайн
253
# сначала перенести данные в питон data=[["A","B"],["C","D"]] # Определяем сущьность которая может выполнять действия get_left get_right class Tbidict: def __init__(self,d): self.L = {} self.R = {} for i,j in d: self.L[j] = i self.R[i] = j def get_left(self, v): return self.L[v] def get_left(self, v): return self.R[v] # создаем экземпляр сущьности и пользуемся им d = Tbidict(data) print(d.get_left("B")) print(d.get_right("A"))
Отредактировано doza_and (Авг. 10, 2017 04:22:24)
Офлайн
6
Не работает. Ночью писать нельзя, появляются два метода get_left 
Вопрос был несколько другой, он не знает слева входные данные или справа, ему без разницы.
Предлагаю простое
# сначала перенести данные в питон data = [['A','B'], ['BKR','KRB']] # создаём словарь комбинаций d = {} for i, j in data: d[i] = j d[j] = i print(d['BKR']) print(d['KRB']) print(d['B'])
Отредактировано Vintets (Авг. 10, 2017 09:13:15)
Офлайн
221
интересно и что же случится если попадутся такие данные
A B
B C
Офлайн
6
интересно и что же случится если попадутся такие данные
A B
B C
Отредактировано Vintets (Авг. 10, 2017 12:35:11)
Офлайн
0
JOHN_16в левом и правом столбце будут разные данные
интересно и что же случится если попадутся такие данныеA BB C

Офлайн
221
ramzaiДа? А в начале топика сказано другое. То есть вы автор сами не знаете чего хотите? Мило.
это таблица кроссов первого столбца в правый
Офлайн
253
ramzaiВы идете в правильном направлении, уточняете спецификацию.
в левом и правом столбце будут разные данные
A B B C
ramzai:) Задача похоже еще более интересная. столбцов похоже 3. первый,левый, правый
это таблица кроссов первого столбца в правый
Отредактировано doza_and (Авг. 11, 2017 07:58:02)
Офлайн
0
Загрузил файл.
Задача:
При вводе значения из столбца D или E, выводило результат из столбца B+C
Как пример:
Ввели ITR4A15 либо 5599, выдает результат: ACDelco 41-101
и бывает так: 3951 либю TR55, предлагает правильный кросс ответ сразу в трех строчках, надо чтобы это так же выводило, как при первом варианте
Прикреплённый файлы:
CrossRef.xls (39,5 KБ)
Офлайн
253
Вам подойдет вариант Vintets. Только замените значение в словаре на то что вам нужно. Если конечно вы гарантируете уникальность ключей в обоих колонках.
Офлайн