Комплексное понимание списка - один лайнерPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Комплексное понимание списка - один лайнер

Сообщение Anonymous »

Я попытался создать одну строку для распечатки этого («Непрофектный список безопасных символов для имен файлов, в большинстве операционных систем»): < /p>

Код: Выделить всё

$ python ./z.py
+,-.
0123456789
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_
abcdefghijklmnopqrstuvwxyz{}~
< /code>
...but не нашли способ сделать это; Так что должен был создать короткий сценарий вместо < /p>
Моя последняя попытка одной линии: < /p>
$ python -c "lst= [ [0x2b,0x2e+1],[0x30,0x39+1],[0x40,0x5f+1],[0x61,0x7f+1] ];print( [ chr(c) if (c & 0xdf)!=0x5c else '' for c in [ range(a,b) for a,b in [ li for li in lst ] ] ] )"
Traceback (most recent call last):
File "", line 1, in 
TypeError: unsupported operand type(s) for &: 'range' and 'int'
Вывод выше, созданный z.py Содержит:

Код: Выделить всё

#!/bin/env python

# copy of the one-liner
# python -c "lst= [ [0x2b,0x2e+1],[0x30,0x39+1],[0x40,0x5f+1],[0x61,0x7f+1] ];print( [ chr(c) if (c & 0xdf)!=0x5c else '' for c in [ range(a,b) for a,b in [ li for li in lst ] ] ] )"

# attempt to break down of the above
# python -c "lst= [ [0x2b,0x2e+1],[0x30,0x39+1],[0x40,0x5f+1],[0x61,0x7f+1] ];print(
# [ chr(c) if (c & 0xdf)!=0x5c else '' for c in
#   [ range(a,b) for a,b in
#     [ li for li in lst ]
#   ]
# ]
# )"

# working code to create the output
lst= [ [0x2b,0x2e+1],[0x30,0x39+1],[0x40,0x5f+1],[0x61,0x7f+1] ]

for li in lst:
a,b=li
for c in range(a,b):
z=(c & 0xdf)
if z != 0x5c:
print(chr(c), end='')
print()
Где проблема с одним лайнером, вы можете определить, как это сделать?

Подробнее здесь: https://stackoverflow.com/questions/794 ... -one-liner
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Один лайнер для преобразования из списка в вектор
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Один лайнер для работы с двумя разными операторами
    Anonymous » » в форуме C++
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Один лайнер для печати пути Python
    Anonymous » » в форуме Python
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Один лайнер для печати пути Python [дублировать]
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Комплексное разбиение и упорядочивание Django для древовидной таблицы
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»