Я работаю над функцией, которая скрывает целое число до шестнадцатеричного. Есть еще много работы, которая должна быть выполнена с комплиментом двух человек и обработкой негативов, но сейчас я просто работаю над тем, чтобы заставить основную логику работать. Вот что у меня есть:Заменить элемент списка ключом словаря в цикле
def intToHexaBin(num):
num = abs(num)
symdict={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"}
rlist=[]
while(num!=0):
rlist.append(str(num%16))
num//=16
rlist=rlist[::-1]
for i in rlist:
if int(i) in symdict:
print("Not sure how to swap list element for a dict value")
print(''.join(rlist))
intToHexaBin(4512)
Я хочу, чтобы выход выглядеть следующим образом для этого примера:
11A0
Я пытаюсь использовать цикл для перебора rlist
и проверить, если элемент в rlist
соответствует ключу в symdict
. Если это так, я хочу поменять элемент списка на значение словаря, которое оно сопоставлено. Итак, если в списке найдено 10
, оно будет найдено в словаре, и этот элемент в списке будет изменен на "A"
соответствующее значение dict. Я не знаю, куда идти
использует 'шестигранник)' функции (из вопроса? Извините, не уверен, хотите ли вы использовать roll-your-own, но метод 'hex()' может преобразовать int, в качестве примера, 'hex (4512)' output' 0x11a0' –
Метод hex() определенно полезен, но Я делаю это, чтобы преобразовать ints в десятичные знаки, чтобы лучше понять, как работает преобразование. Плюс это хорошая практика для кодирования. –