Вот моя первая программа на Python, маленькая утилита, которая преобразует из восьмеричного кода Unix для прав доступа к файлам в символической форме:Как упростить обработку списка в Python?
s=raw_input("Octal? ");
digits=[int(s[0]),int(s[1]),int(s[2])];
lookup=['','x','w','wx','r','rx','rw','rwx'];
uout='u='+lookup[digits[0]];
gout='g='+lookup[digits[1]];
oout='o='+lookup[digits[2]];
print(uout+','+gout+','+oout);
Есть ли способы сократить этот код, воспользоваться каким-то «обработкой списка «? Например, чтобы сразу применить функцию int
ко всем трем символам s
без необходимости явной индексации. И индексировать в lookup
используя весь список digits
сразу?
Вы намеренно хотите использовать ';' в конце каждой строки в этом скрипте? Это * Python *, [в конце концов] (http://stackoverflow.com/a/8236402/1167750) ... :) – summea
Полностью для удовольствия (не используйте это), вот однострочный: ' print (','. join (c + '=' + ''. join ('xw r' [i-1: i & b] для i в (4,2,1)) для c, b в zip ('ugo' , map (int, raw_input («Octal?»))))) ' –