альтернатива макетрансу для списка - python 2.7 - PullRequest
0 голосов
/ 30 мая 2018
INPUT = ["a","b","c","d","e","f","g","h","i","j","k"]
OUTPUT = ["20","21","22","23","24","25","26","27","28","29","30"]
TABLE = maketrans(INPUT, OUTPUT)
content = content.translate(TABLE)

TypeError: аргумент maketrans () 1 должен быть строковым или только для чтения символьным буфером, а не списком

Что я хочу, например, если string = "a", возвращаемое значение равно" 20 ".

Я не могу превратить INPUT и OUTPUT в строки, потому что они будут иметь разный размер.

Какая самая эффективная альтернатива или настройка?

1 Ответ

0 голосов
/ 30 мая 2018

Используйте izip_longest (Python 2.x) или zip_longest (Python 3.x):

from itertools import izip_longest

INPUT = ["a","b","c","d","e","f","g","h","i","j","k"]
OUTPUT = ["20","21","22","23","24","25","26","27","28","29","30"]

string = 'a'   # string here

for i, o in izip_longest(INPUT, OUTPUT):
    if i == string:
        print(o)
# 20
...