Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
p
 Аватар для hasker2
84 / 44 / 16
Регистрация: 15.01.2021
Сообщений: 433

Получить следующий элемент for

08.08.2022, 23:31. Показов 4335. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть код который пишет текст песни из формата lrc
Python
1
2
3
4
5
6
7
s = ['[00:00.64]First song words', '[00:02.39]Another words']
for i in s:
        i = i
        mm, ss, ms = map(int, re.split(r'[:.]', re.search(r'(?<=\[).+?(?=])', i)[0]))
        print(f'''----------
        starttime = {(mm * 60) + ss}
        text: {i.split("]")[1]}''')
оно выводит
Code
1
2
3
4
5
6
----------
        starttime = 0
        text: First song words
----------
        starttime = 2
        text: Another words
все верно но мне нужно чтобы выводило endtime который равен началу следующих слов
Code
1
2
3
4
5
6
7
8
----------
        starttime = 0
        endtime = 2
        text: First song words
----------
        starttime = 2
        endtime = last words
        text: Another words
тоесть мне нужно следующий результат с итератора
а если слова последний записать туда last words
у python есть next() но я не разобрался как это использовать в моем случае
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.08.2022, 23:31
Ответы с готовыми решениями:

Как искать следующий элемент в BeautifulSoup
Спарсил страницу в ней таблица &lt;tbody _ngcontent-boerse-frankfurt-c136=&quot;&quot;&gt; &lt;tr _ngcontent-boerse-frankfurt-c136=&quot;&quot;...

Как получить следующий элемент в List?
Задача такая: делается приложение типа прокат велосипедов. Есть классы Order (заказы собственно), абстрактный класс Client. Не могу понять,...

Получить следующий элемент после выделенного из ListBox
Всем привет! Такой вопрос: В листбоксе несколько строк. Выделяется какая-нибудь строка. Нужно в переменную записать следующую строку из ...

3
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
09.08.2022, 06:42
обходите два по два элемента за раз

Python
1
2
3
4
5
6
7
8
9
>>> s = [1, 2, 3, 4, 5]
>>>
>>> for x in range(len(s)-1):
...     print(f'start: {s[x]}, end: {s[x+1]}')
...
start: 1, end: 2
start: 2, end: 3
start: 3, end: 4
start: 4, end: 5
1
p
 Аватар для hasker2
84 / 44 / 16
Регистрация: 15.01.2021
Сообщений: 433
09.08.2022, 11:33  [ТС]
Jabbson, Тут ваша программа додает к start единицу, но мне нужно чтобы оно брало время именно из начала следующего текста, ведь оно не всегда будет на 1 больше

Добавлено через 11 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
s = ['[00:00.64]First song words', '[00:02.39]Another words', '[00:04.39]Heloo',  '[00:08.40]Everyone']
for i in s:
        nextind = s.index(i) + 1
        try:
                endmm, endss, endms = map(int, re.split(r'[:.]', re.search(r'(?<=\[).+?(?=])', s[nextind])[0]))
                endtime = endmm * 60 + endss
        except IndexError:
                endtime = 'last element'
        except Exception as e:
                print(e)
        mm, ss, ms = map(int, re.split(r'[:.]', re.search(r'(?<=\[).+?(?=])', i)[0]))
        print(f'''----------
        starttime = {(mm * 60) + ss}
        endtime = {endtime}
        text: {i.split("]")[1]}''')
сделал так, берет время с елемента списка, большего на один, а если IndexError пишет last element
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
09.08.2022, 15:45
Цитата Сообщение от hasker2 Посмотреть сообщение
Jabbson, Тут ваша программа додает к start единицу, но мне нужно чтобы оно брало время именно из начала следующего текста, ведь оно не всегда будет на 1 больше
это был упрощенный пример,

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
s = ['[00:00.64]First song words', '[00:02.39]Another words',
     '[00:04.39]Heloo',  '[00:08.40]Everyone']
 
 
def get_words(w):
    return w.split(']')[1]
 
 
def get_time(t):
    return int(t.split(':')[1].split('.')[0])
 
 
for x in range(len(s)):
    words = get_words(s[x])
    start = get_time(s[x])
 
    if x == len(s)-1:
        end = 'last words'
    else:
        end = get_time(s[x+1])
 
    print('----------')
    print(f'starttime = {start}')
    print(f'endtime = {end}')
    print(f'text: {words}')
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
----------
starttime = 0
endtime = 2
text = First song words
----------
starttime = 2
endtime = 4
text = Another words
----------
starttime = 4
endtime = 8
text = Heloo
----------
starttime = 8
endtime = last words
text = Everyone
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.08.2022, 15:45
Помогаю со студенческими работами здесь

Как прочитать-получить следующий элемент-значение
Доброго времени суток. Подскажите плз. Есть такой HTML-код: &lt;div class=&quot;delivery-block&quot;&gt; &lt;div class=&quot;&quot;&gt; &lt;p...

получить массив а(17), каждый следующий элемент массива определяется как среднее ариф
По данным числам x, y, z получить массив а(17), где а(1)=х, а(2)=у, а(3)=x, а каждый следующий элемент массива определяется как среднее...

Если элемент найден, то удалить его и следующий за ним элемент из массива
Сформировать массив x, упорядоченный по убыванию. Определить, содержит ли он заданное число. Если элемент найден, то удалить его и...

Поменять местами каждый элемент массива с нечетным индексом и следующий за ним элемент
Составить программу,в которой меняются местами каждый элемент с нечетным индексом и следующий за ним элемент с четным индексом,входящие в...

Каждый элемент массива заменить на ближайший следующий за ним элемент за один просмотр
В масcиве А размера N за один просмотр необходимо каждый элемент заменить на ближайший следующий за ним элемент, который больше его. Если...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 05.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru