Что делает N[1] [i], если N является массивом, а N[1] [i] находится внутри цикла for? У меня проблемы с пониманием

#python #arrays #string #append

#python #массивы #строка #добавить

Вопрос:

Итак, я просматривал некоторый код на python и наткнулся на этот фрагмент кода: он предположительно сканирует все экземпляры числа в строке, но я действительно не понимаю. Вот мой код:

 inp = open("socdist1.in").read().strip().split()

print(inp)

n = int(inp[0])

cow_places = []
for i in range(n):
    if (inp[1][i] == "1"):
        cow_places.append(i);
print(cow_places)
 

Комментарии:

1. Привет, добро пожаловать в SO! Что вы исследовали в этом отношении и, в частности, что вас беспокоит?

2. Привет, я не понимаю, что делает N [1] [i] == ‘1’, я в замешательстве, потому что я видел это в обучающем видео, и парень использовал его для сканирования строки внутри массива для числа 1.

3. Мы можем ответить вам точно, только если вы можете предоставить содержимое socdist.in .

4. Он делает именно то, что вы только что сказали! На самом деле выполняется поиск, имеет ли указанный индекс значение '1'

5.[’14’, ‘10001001000010’] [0, 4, 7, 12]

Ответ №1:

Спасибо Poke, Navaneeth Reddy и Hamza за ответы на мой вопрос Для заинтересованных людей, ответ заключается в том, что N [1] [i] является частью двух вещей: N [1] часть — это 1-е место массива, и N [i] сканирует эту часть на предмет того, что вам нужноищите.

Ответ №2:

 inp = [14, '10001001000010'] #14 is the length of the string '10001001000010'

print(inp[1]) #outputs '10001001000010'
print(inp[1][0]) #outputs '1'
print(inp[1][2]) #outputs '0'

for i in range(inp[0]): #inp[0] is the length of the string
    print(inp[1][i]) #outputs the i-th character in '10001001000010'
 

Вывод цикла for выглядит следующим образом:

 1
0
0
0
1
0
0
1
0
0
0
0
1
0