Как мне получить настраиваемый список в качестве вывода на python?

#python #python-3.x #list #hex #ascii

Вопрос:

У меня есть этот код.

 character = input("Enter a character: n")

def ASCIItoHEX(ascii):
    hexa = []
    for i in range(len(ascii)):
        ch = ascii[i]
        in1 = ord(ch)
        part = hex(in1)
        hexa  = part
    return hexa

if __name__ == '__main__':
    hexadecimal = ASCIItoHEX(character)
    print(hexadecimal)
 

и это дает мне такой вывод, когда я ввожу «1111».:

[‘0’, ‘x’, ‘3’, ‘1’, ‘0’, ‘x’, ‘3’, ‘1’, ‘0’, ‘x’, ‘3’, ‘1’, ‘0’, ‘x’, ‘3’, ‘1’]

но я хочу, чтобы мой результат был таким:

[‘0x31’, ‘0x31’, ‘0x31’, ‘0x31’]

Как получить этот результат?

Ответ №1:

Используйте list.append() вместо = этого для добавления всей строки. В противном случае строка обрабатывается как последовательность и разбивается на символы.

 character = input("Enter a character: n")

def ASCIItoHEX(ascii):
    hexa = []
    for i in range(len(ascii)):
        ch = ascii[i]
        in1 = ord(ch)
        part = hex(in1)
        hexa.append(part)
    return hexa

if __name__ == '__main__':
    hexadecimal = ASCIItoHEX(character)
    print(hexadecimal)
 

Другим способом было бы

 hexa  = [part]
 

чтобы объединить два списка.