Найти - Пользователи
Полная версия: Списки
Начало » Python для новичков » Списки
1 2 3
Dorum
FishHook
Вопрос аналогичный “как сделать ничего”.
- Если анализы будут положительными, то я застрелюсь.
- А если отрицательными?
- Ничего не буду делать.
Пример потрясающий. Решение найдено.
 list = []
while len(list) != 5:
    list1 = int(input("Введите число = "))
    list.append(list1)
print(list)
a = []
for i in range(len(list)):
    if list[i] > 0 and list[i - 1] > 0 and i != 0:
        a.append(list[i])
        a.append(list[i - 1])
        #print(list[i], list[i - 1])
    elif list[i] < 0 and list[i - 1] < 0 and i != 0:
        a.append(list[i])
        a.append(list[i - 1])
        #print(list[i], list[i - 1])
    if len(a) != 0:
        print(a[0], a[1], sep=" и ")
    elif len(a) == 0:
        pass
Спасибо Вам за уделенное время
marvellik
все намного проще
 li_st = [int(i) for i in input().split()]
for i in range (len(li_st)-1):
    if li_st[i]*li_st[i+1]>0:
        print(li_st[i],li_st[i+1])
        break
FishHook
Все еще гораздо проще, причем дает все пары, а не только первую
 l = [1, 4, -2, 3, -1, -1, 0, 78, 8, -7, 0, 2]
print([x for x in zip(l, l[1:]) if x[0] * x[1] > 0])
marvellik
FishHook
Все еще гораздо проще, причем дает все пары, а не только первую
согласен. но согласно полному условию требуется только первая
“Дан список чисел. Если в нем есть два соседних элемента одного знака, выведите эти числа. Если соседних элементов одного знака нет — не выводите ничего. Если таких пар соседей несколько — выведите первую пару.”
Iskatel
Простите, но чтото здесь я затупил

 for i in range(len(list)):
    if list[i] > 0 and list[i - 1] > 0 and i != 0:

ведь list(i - 1) на первом же проходе должно выдавать “аут оф боундс”

ЗЫ. ПОЧИНИТЕ квадратные скобки в тексте.

noob_saibot
Iskatel
Простите, но чтото здесь я затупил
А индекс -1 вас чем смущает?
Dorum
Iskatel
ведь list(i - 1) на первом же проходе должно выдавать “аут оф боундс”
Во-первых, -1 индекс - это последний элемент моего списка, а во-вторных, мое условие исключает первый, а он же 0 индекс, то есть i не должен равняться 0.
Iskatel
Да дошло уже, С++ меня еще не отпустил
Isem
FishHook
l =
print([x for x in zip(l, l) if x * x > 0])

Не пинайте строго, но подразумевая разделение переменных из элементов массива, не чище ли писать типа что-то около:
 print([(x,y) for x,y in zip(l, l[1:]) if x*y > 0])[/quote]
?
Isem
Iskatel
Да дошло уже, С++ меня еще не отпустил
Переходите лучше на D.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB