#python #indexing
#python #индексирование
Вопрос:
Учитывая список строк, цель состоит в том, чтобы получить индекс для вхождения 0
.
Для достижения этой цели предлагается следующий код
txt=['-100:200','-15:0','0:15','30:45']
all_t=[[int(idx) for idx in t.split(":")] for t in txt]
s_val=[]
for idx,mm in enumerate(all_t):
if 0 in mm:
s_val.append(idx)
Ожидаемый результат
s_val=[1, 2]
Однако мне интересно, встроенный или более компактный / эффективный подход для достижения вышеуказанной цели?
Ответ №1:
txt=['-100:200','-15:0','0:15','30:45']
print ([i for i in range(len(txt)) if '0' in txt[i].split(":")])
Вывод:
[1,2]
Вы используете понимание списка для перебора каждого элемента txt
по индексу i
.
Затем вы просто проверяете условие: находится '0'
в списке из .split(":")
этого единственного элемента с заданным индексом.