Найти - Пользователи
Полная версия: Функция таблицы-словарь в Python
Начало » Python для новичков » Функция таблицы-словарь в Python
1
ramzai
Есть таблица xls, где левый и правый столбец равнозначны.
Как пример:
А В
BKR KRB

Задача для бота: при вводе значения из левого столбца он выдавал значение из правого и наоборот. Это некий словарь слов. Подскажите как реализовать данную функцию.
doza_and
 # сначала перенести данные в питон
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"))
Vintets
Не работает. Ночью писать нельзя, появляются два метода 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'])
JOHN_16
интересно и что же случится если попадутся такие данные
A B
B C
Vintets
интересно и что же случится если попадутся такие данные
A B
B C

А сама постановка задачи должна исключать такие входные данные.
Или задающий должен для себя решить что ему нужно в этом случае.
ramzai
JOHN_16
интересно и что же случится если попадутся такие данныеA BB C
в левом и правом столбце будут разные данные
это таблица кроссов первого столбца в правый
JOHN_16
ramzai
это таблица кроссов первого столбца в правый
Да? А в начале топика сказано другое. То есть вы автор сами не знаете чего хотите? Мило.
doza_and
ramzai
в левом и правом столбце будут разные данные
Вы идете в правильном направлении, уточняете спецификацию.
Но значение в для заданной строки левом столбце и в правом всегда разные для данных вида
 A B
B C
Вы напишите что должно получиться в этом конкретном случае.
Вам привели 2 варианта. Вы их поняли, какой вам больше подходит?

ramzai
это таблица кроссов первого столбца в правый
:) Задача похоже еще более интересная. столбцов похоже 3. первый,левый, правый
ramzai
Загрузил файл.
Задача:
При вводе значения из столбца D или E, выводило результат из столбца B+C
Как пример:
Ввели ITR4A15 либо 5599, выдает результат: ACDelco 41-101
и бывает так: 3951 либю TR55, предлагает правильный кросс ответ сразу в трех строчках, надо чтобы это так же выводило, как при первом варианте
doza_and
Вам подойдет вариант Vintets. Только замените значение в словаре на то что вам нужно. Если конечно вы гарантируете уникальность ключей в обоих колонках.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB