Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
1

Однострочник

13.08.2017, 02:09. Показов 1306. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Возможно ли код приведенный ниже переписать в однострочник (т.е. вида lst=[x for x in ...]) ?

Python
1
2
3
4
5
6
for i in rooms:
    sub=[i]
    for k in all_els:
        if num(i)==num_Q(k):
            sub.append(k)
    lst.append(sub)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.08.2017, 02:09
Ответы с готовыми решениями:

Однострочник
Напишите какой-нибудь дикий однострочник большой который вы когда-то создали ради забавы(рабочий).

Однострочник
из терминала выполняем однострочник, который должен посчитать кол-во файлов всего и кол-во файлов,...

Perl - однострочник в среде POWERSHELL
Предлагаемый способ не является кросс-платформенным в том смысле, что сама перловая часть не...

Однострочник. Продолжение темы Магические Фичи
Вот например файл а.txt aaa bbbb cccc dddddd perl -lne ' ++$count }{ print $count ' ...

10
Просто Лис
Эксперт Python
5731 / 3530 / 1055
Регистрация: 17.05.2012
Сообщений: 10,359
Записей в блоге: 9
13.08.2017, 06:47 2
Лучший ответ Сообщение было отмечено rar как решение

Решение

А нафига? Чтобы потом нельзя было отлаживать?
Python
1
2
3
4
5
6
7
8
rooms = [1,2]
all_els = [3,4]
num = lambda x: True
num_Q = lambda x: True
 
lst = [[i]+[k for k in all_els if num(i)==num_Q(k)] for i in rooms]
 
print(lst)
1
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
13.08.2017, 10:20  [ТС] 3
Для изучения разных способов составления генераторов списка
И
Если в коде не потребуется более никаких изменений то почему бы не завернуть в его в генератор.
Хотя на случай если все таки далее изменения будут это конечно неудобно. По факту буду пользоваться генераторами для небольших кусков кода с небольшим вложением условий...
0
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
06.09.2017, 23:17  [ТС] 4
в продолжение темы...

как в однострочник записать условие с двумя if ?

Python
1
a=[1,2,3,4,5]
например записать условие в одну строку:
Python
1
2
3
4
5
for i in a:
    if a<2:
        b>="меньше двух"
    if a<2:
        b="больше или равно двум"
0
Просто Лис
Эксперт Python
5731 / 3530 / 1055
Регистрация: 17.05.2012
Сообщений: 10,359
Записей в блоге: 9
07.09.2017, 04:31 5
Цитата Сообщение от rar Посмотреть сообщение
как в однострочник записать условие с двумя if ?
Но тут один if...
Python
1
2
a = [1,2,3,4,5]
ls = ["меньше двух" if i<2 else "больше или равно двум" for i in a]
Может узнаете конструкцию в c++:
C++
1
res = (i<2)? "меньше двух":  "больше или равно двум";
0
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
07.09.2017, 16:23  [ТС] 6
хорошо, а если есть условие из трех if ? )
0
Просто Лис
Эксперт Python
5731 / 3530 / 1055
Регистрация: 17.05.2012
Сообщений: 10,359
Записей в блоге: 9
07.09.2017, 16:27 7
Лучший ответ Сообщение было отмечено rar как решение

Решение

Да хоть десять:
Python
1
2
3
4
5
6
7
8
#!/usr/bin/env python3
 
def f(i):
    print(1 if i==1 else 2 if i==2 else 3)
 
f(1)
f(2)
f(3)
1
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
07.09.2017, 22:31  [ТС] 8
интересен такой вопрос : как я понимаю в однострочнике не получится выдержать отступы (то что делаем клавишей shift или четыре пробела)?

т.е. невозможно в однострочнике записать такое условие :
Изображения
 
0
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
08.09.2017, 12:50  [ТС] 9
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Может узнаете конструкцию в c++:
C++Выделить код
1
res = (i<2)? "меньше двух": *"больше или равно двум";
Здесь я не узнаю сочетание букв :
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
C++
0
Просто Лис
Эксперт Python
5731 / 3530 / 1055
Регистрация: 17.05.2012
Сообщений: 10,359
Записей в блоге: 9
08.09.2017, 14:23 10
Оператор ?: (справочник по C#)
0
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
08.09.2017, 23:00  [ТС] 11
Спасибо,
срочка
Цитата Сообщение от rar Посмотреть сообщение
Здесь я не узнаю сочетание букв :
Сообщение от Рыжий Лис
C++
это так для самоиронии. по C++ знания нулевые
0
08.09.2017, 23:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.09.2017, 23:00
Помогаю со студенческими работами здесь

Что делает однострочник, нужно пояснение, пожалуйста
for file in *.svg; do read file «&lt; $(echo $file | awk -v var=${file} '{ gsub(/.svg/,&quot;&quot;,var) ; print...

Что делает однострочник, нужно пояснение, пожалуйста
for file in *.svg; do read file «&lt; $(echo $file | awk -v var=${file} '{ gsub(/.svg/,&quot;&quot;,var) ; print...

Что делает однострочник, нужно пояснение, пожалуйста
for file in *.svg; do read file &lt;&lt;&lt; $(echo $file | awk -v var=${file} '{ gsub(/.svg/,&quot;&quot;,var) ;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru