Повторите список строк и разделите

#python #list #split #iteration

Вопрос:

Я пытаюсь выполнить итерацию по списку, затем разделить строки — чтобы выполнить функцию для определенного элемента в разделении. мне нужно что — то вроде этого-чтобы я мог захватить каждый элемент с помощью postilion x[2] = 220

 ['2', '325', '220', '1.0']
 

что я получаю, так это (разбиение по символам)

 for row in range(len(pln)):
            for j in range(len(pln[row])):
                print( pln[row][j], end="")
                x = [pln[row][j].split()]
                print (x)

2[['2']]
 [['', '']]
3[['3']]
2[['2']]
5[['5']]
 [['', '']]
2[['2']]
2[['2']]
0[['0']]
 [['', '']]
1[['1']]
.[['.']]
0[['0']]

[['n']]

pln = (before iteration as list)
['2 325 220 1.0n', '2 600 200 3.3n', '2 325 100 3.3n', '2 600 120 5.5n', '2 600 125 5.5n', '2 325 100 3.4']

pln = (after iteration)
2 325 220 1.0
2 600 200 3.3
2 325 100 3.3
2 600 120 5.5
2 600 125 5.5
2 325 100 3.4
 

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

1. в чем заключается ваш вопрос?

2. я хочу иметь возможность просматривать список, разделятьизвлекать данные из каждой строки, помещенной в переменную для манипуляций — повторять для каждой строки. то, как я разделяю, делает это отдельными символами — я бы хотел, чтобы числа оставались вместе для извлечения. так что для линии 2 235 220 1.0 — Я бы хотел, чтобы 235 было одним символом, когда я разделяюизвлекаю

Ответ №1:

Вот решение:

 lst = ['2 325 220 1.0n', '2 600 200 3.3n', '2 325 100 3.3n', '2 600 120 5.5n', '2 600 125 5.5n', '2 325 100 3.4']
result_list = []
for i in lst: 
    k = i.split()
    result_list.append(k)
print(result_list)
#Output: 
[['2', '325', '220', '1.0'], ['2', '600', '200', '3.3'], ['2', '325', '100', '3.3'], ['2', '600', '120', '5.5'], ['2', '600', '125', '5.5'], ['2', '325', '100', '3.4']]

 

Вы можете получить доступ к такому элементу, как:

 #result_list[row_number][element index]
print(result_list[2][3]) #fourth element in third row  
#Output
3.3
 

Вы можете повторить все строки, как:

 for row in result_list: 
    print(row)

#Output:
['2', '325', '220', '1.0']
['2', '600', '200', '3.3']
['2', '325', '100', '3.3']
['2', '600', '120', '5.5']
['2', '600', '125', '5.5']
['2', '325', '100', '3.4']
 

Вы можете повторить любой столбец, например:

 for row in result_list: 
    print(row[1]) #This will give second column

#Output:
325
600
325
600
600
325
 

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

1. одно продолжение. код-это здорово. но как мне извлечь из всех строк элемент 2? Возможно, я не всегда знаю количество строк в списке, поэтому статическое извлечение, как предлагал йо, не всегда будет работать.

2. result_list[row_number] дам вам все подряд. Вы можете повторить список результатов, например: for row in result_list Я добавил код в ответ

3. извините, что продолжаю преследовать, но я заблудился. если бы я хотел второй элемент в строке 1 и 2 или в любой строке — 325 и 600. как бы я их извлек?

4. Я также добавил, как вы можете перебирать столбцы.

5. Я хотел бы дать тебе больше, чем один! Ty

Ответ №2:

Прекратите печать при разделении. Печать после разделения столбцов.

 pln = ['2 325 220 1.0n', '2 600 200 3.3n', '2 325 100 3.3n', '2 600 120 5.5n', '2 600 125 5.5n', '2 325 100 3.4']
rows = [line.split() for line in pln]

for row in rows:
    print('t'.join(row))
 

Затем вы можете получить доступ к каждой строке по ее индексу

 second_row = rows[1]
 

Затем получите доступ к каждому столбцу по индексу

 third_column = second_row[2]
 

Ответ №3:

Этот код будет хранить отдельные символы в new_list
Это все, что я понял из вашего вопроса, если что-нибудь еще спросите.

 given_list = ['2','325','220','1.0']
new_list = list()
length = len(given_list)
for i in range(length):
    for j in given_list[i]:
        new_list.append(j)
    if i 1 != length:
        new_list.append(",")
print(new_list)
 

Выход: ['2', ',', '3', '2', '5', ',', '2', '2', '0', ',', '1', '.', '0']