Python для цикла для извлечения только первого x-го числа элементов

#python #loops #for-loop #range

#питон #петли #для-петли #диапазон

Вопрос:

Я новичок в программировании, так что потерпите:), я пытаюсь создать цикл for, чтобы показывать только первые несколько элементов 2d-списка. там будет 2 списка 1, в которых будут показаны первые элементы вплоть до скрытого пароля, в которых пользователю будет предложено, хотят ли они видеть полную строку с нераскрытым паролем. Кажется, я не могу заставить их для цикла печатать только первые 0-5 элементов каждой строки. Приведенный ниже код идеально подходит для 2-го цикла, но мне нужна помощь, чтобы создать цикл for, который печатается, например, из [0:5].

 allUserDetails = [["John", "Doe", "User", "Sales", "johndoe91", "Hidden", "Viewable"],  ["James", "Hill", "Admin", "Administrator", "hill95", "Hidden", "Viewable"]]  showRecords = 0   for row in range(len(allUserDetails)): # loop prints the full list  showRecords  = 1  print("-" * 25)  print("Record: ", showRecords)  for col in range(len(allUserDetails[row])):  print(allUserDetails[row][0:][col][0:])  showRecords = 0  print("-" * 25)  print()  

Любая помощь будет очень признательна 🙂

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

1. Вы можете нарезать свой allUserDetails на первый n попавшийся или использовать break в цикле, чтобы остановиться при некоторых условиях

Ответ №1:

Из того, что я понял, вы хотите напечатать только первые пять элементов каждой строки?

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

 for row in allUserDetails: for element in row[0:5]: # the rows have been sliced to only show element 0 - 5  print(element) print("-" * 25)  

Ответ №2:

Я бы предложил использовать другой цикл for внутри цикла строки, который поможет выделить n элементов из строки

 for row in allUserDetails: #Loops through all arrays in the 2D array  for i in range(5): #Loops through the first five elements of the row  print(row[i])  

for row in allUserDetails установит переменную строку в массив строк, как определено в вашем 2D-массиве.

for i in range(n) проделает цикл через эту строку n раз, а затем вы можете распечатать каждую найденную там строку, используя print(row[i])