Как мне преобразовать список байтовых литералов в строковые литералы в Python 3? - PullRequest
1 голос
/ 27 сентября 2019

У меня есть список байтовых литералов:

list1 = [b'R103', b'R102', b'R109', b'R103']

Я хотел бы преобразовать этот список байтовых литералов в строковые литералы.Так что-то вроде:

list1 = ['R103', 'R102', 'R109', 'R103']

Я пытался использовать декодирование:

list1.decode("UTF-8")

Но декодирование не работает для списков.Я получаю следующее сообщение об ошибке:

AttributeError: 'list' object has no attribute 'decode'

Есть ли способ преобразовать весь список в строковые литералы, которые мне не хватает?

1 Ответ

0 голосов
/ 27 сентября 2019

Как уже упоминалось в комментариях, вы хотите использовать понимание списка.В своем примере кода вы пытались применить функцию decode() ко всему списку, а не к элементам этого списка.Ниже, list2 определяется путем итерации по элементам list1 и преобразования применения decode() к каждому элементу, а затем создания нового списка из элементов и назначения их для list2

In [1]: list1 = [b'R103', b'R102', b'R109', b'R103']

In [2]: list2 = [x.decode("UTF-8") for x in list1]

In [3]: list2
Out[3]: ['R103', 'R102', 'R109', 'R103']

Надеюсь, это имеет смысл!

...