Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 8, 2008 22:38:48

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

списковые включения на два условия на одну переменную

Здравствуйте.

Вопрос:

Возможно ли применить списковое включение с условием для одной и той же переменной ?

то есть я хочу в зависимости от условия собрать список значений по той или иной функции для одной переменной.

то есть что то этого:

tmp = [x for x in range(page-5, page + 5)  for x in range(1,11) if page >= 9 if page < 9]
Можно конечно это сделать с применением конструкции if + списковое включение но хотелось бы узнать о возможности без применения этой конструкции.

Спасибо

Офлайн

#2 Ноя. 8, 2008 23:10:50

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

списковые включения на два условия на одну переменную

and ?



Офлайн

#3 Ноя. 8, 2008 23:30:19

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

списковые включения на два условия на одну переменную

Я вот тоже что-то не понял суть вопроса.

Офлайн

#4 Ноя. 8, 2008 23:53:29

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

списковые включения на два условия на одну переменную

я тоже не совсем понял, вроде ты сам ответ написал =)
вот один цикли два условия

a = [1, 2, 3, 4]
tmp = [x for x in a if x > 1 if x < 4]
вот один цикл и два условия в одном if
a = [1, 2, 3, 4]
tmp = [x for x in a if (x > 1) and ( x < 4)]



Офлайн

#5 Ноя. 8, 2008 23:59:45

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

списковые включения на два условия на одну переменную

Daevaorn
and ?
and имеется ввиду в условии применять? Но это не то потому что для каждого выражения свое условие. Пробовал and вставить
между x for x in range(page-5, page + 5) и for x in range(1,11)
или ошибка идет или не то что то
пробовал разные варианты
делал так:
 print [x for x in range(1,6) and for x in range(5,11) if a>50 if a<50]  # ошибка
то есть у меня должен получится список
1) если a = 100
2) если a = 10

Отредактировано (Ноя. 9, 2008 00:01:32)

Офлайн

#6 Ноя. 9, 2008 00:06:33

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

списковые включения на два условия на одну переменную

ты объясни задачу всетки как-нибудь еще. ниче не понимаю %)
и где тут a?

print [x for x in range(1,6) and for x in range(5,11) if a>50 if a<50]



Офлайн

#7 Ноя. 9, 2008 00:27:07

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

списковые включения на два условия на одну переменную

shiza
ты объясни задачу всетки как-нибудь еще. ниче не понимаю %)
и где тут a?
print [x for x in range(1,6) and for x in range(5,11) if a>50 if a<50]
Как преобразовать правильно списковое включение:
a = 60
print [x for x in range(1,6) and for x in range(5,11) if a>50 if a<50]
чтобы оно выдавало если а = 60
а если а = 10 то выдавало

Офлайн

#8 Ноя. 9, 2008 00:36:05

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

списковые включения на два условия на одну переменную

Ром, вопрос абсолютно не соответствует коду который ты приводишь.

Ты написал nests list comprehensions. И хочешь из него два списка получить? Нет, так нельзя. Тем более что за переменная `a`?



Отредактировано (Ноя. 9, 2008 00:43:18)

Офлайн

#9 Ноя. 9, 2008 00:46:18

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

списковые включения на два условия на одну переменную

Daevaorn
Ром, вопрос абсолютно не соответствует коду который ты приводишь.

Ты написал nests list comprehensions. И хочешь из него два списка получить? Нет, так нельзя. Тем более что за переменная `a`?
Понятно. Спасибо за разъяснение.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version