#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']