У меня есть список кортежей строк:Эффективное отображение между первым элементом каждого кортежа в списке и алфавитные символы
lst = [('first', 'one'), ('second', 'two'), ('third', 'three'), ('fourth', 'four')]
Я хочу, чтобы создать отображение между первым элементом каждого кортежа и на английском алфавита в нижнем регистре символов:
'first'
отображается в'a'
'second'
отображенной в'b'
'third'
отображается в'c'
'fourth'
отображенной в'd'
Я попытался словарь
dct = {'first': 'a', 'second': 'b', 'third': 'c', 'fourth': 'd'}
, но мне было интересно, если есть более эффективный подход, который позволит создать список, содержащий первый элемент кортежей и список алфавитов, а затем итерацию их для создания словаря.
Кроме того, для символов алфавита я попытался использовать string.ascii_lowercase
, но он дает строку не как список каждого символа.
Я новичок в Python, поэтому извините, если вопрос является основным. Я был бы признателен за любой пример кода, который я мог бы понять и узнать.
Отличный ответ. Не могли бы вы добавить небольшое объяснение различий между двумя способами с точки зрения эффективности, а также объяснить функции 'map' и' itemgetter'? – Karim
Я вряд ли могу объяснить их лучше, чем документы для ['map()'] (https://docs.python.org/3.6/library/functions.html#map) и ['itemgetter()'] (https://docs.python.org/3.6/library/operator.html#operator.itemgetter). Что касается эффективности, первая версия будет более эффективной, так как она потребует меньше вызовов функций. –