Рубрики
Без рубрики

Список Python 2d: От Базового до продвинутого

Список Python 2d – один из самых полезных типов данных. Мы можем добавлять значения всех типов, таких как целые числа, строки, float, в один список. Пример 2d списка

Автор оригинала: Team Python Pool.

Список Python 2d: От Базового до продвинутого

Список является одним из самых полезных типов данных в python. Мы можем добавлять значения всех типов, таких как целые числа, строка, поплавок, в один список. Инициализация списка может быть выполнена с помощью квадратных скобок []. Ниже приведен пример 1d – списка и 2d-списка. Поскольку мы не можем использовать 1d list в каждом случае использования, поэтому используется python 2d list. Также известный как списки внутри списка или вложенный список. Количество элементов в 2d-списке будет равно количеству строк * количеству столбцов. 2D-список выглядит примерно так.

list1_d=['sonu', 'ashu', 50, 10.1] 
list_2d=[ [5,6,7,7] , [5,4,6,7] , [9,8,9,10] ]
список python 2d
список python 2d

Графическое представление

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

список python 2d
список python 2d

Как объявить/инициализировать 2d-список python

Существует несколько способов инициализации 2d-списка в python.

  1. Это основной подход к созданию 2d-списка в python.
rows=[] 
columns=[] 
for i in range(3):
   for j in range(3):
      columns.append(1)
   rows.append(columns)

ВЫХОД-

[[1, 1, 1], [1, 1, 1], [1, 1, 1]]
список python 2d
список python 2d
  • Предположим, вы хотите создать 2d-список с координатами в качестве его значений.
x = [[(i,j) for j in range(3)] for i in range(3)]
[[(0, 0), (0, 1), (0, 2)], [(1, 0), (1, 1), (1, 2)], [(2, 0), (2, 1), (2, 2)]]
список python 2d
список python 2d
  • Если мы хотим создать 2d список с 0 в качестве его значения:
x = [[0 for j in range(3)] for i in range(3)]

Выход-

[ [0, 0, 0], [0, 0, 0], [0, 0, 0] ]
список python 2d
список python 2d

Как получить значения из списка python 2d

2D список может быть доступен по двум атрибутам а именно строке и столбцам и для доступа к этим спискам мы используем следующий код-

for i in range(len(rows)):
   for j in range(len(columns)):
     )
print("\n")
список python 2d
список python 2d

Выход:

1 1 1
1 1 1
1 1 1

Мы также можем использовать концепцию среза для извлечения данных из любых строк и столбцов, которые мы хотим.

Предположим, что мы хотим получить только строки 1 и 2 и все столбцы, для этой цели мы можем использовать нарезку.

list1 = [ [1,2,3], [4,5,6], [7,8,9], [10,11,12] ]
print(list1[1:3][:]) """ [1:3] is used for rows-1,2[:] is used to represent all values"""

Выход:

[[4, 5, 6], [7, 8, 9]]

Теперь предположим, что мы хотим получить все строки, но только столбец 1:

print(list1[:][1])

Выход-

[4,5,6]

Но это не колонка 1. Почему? Именно потому, что это ограничение 2d-списка python, мы не можем выполнять операции по столбцам над 2d-списком. Для этой цели у нас есть массив NumPy.

Ограничения 2d-списка

Как видно из последнего примера, мы не можем выполнить операцию по столбцам в 2d-списке. Для этой цели мы должны использовать 2d массив NumPy. Чтобы преобразовать 2d список в 2d массив мы сначала должны импортировать библиотеку NumPy с помощью pip install NumPy а затем выполнить следующие операции:

list_2d=[[1,2,3] ,[4,5,6] ,[7,8,9],[10,11,12]] 
import numpy #importing numpy library  .array(list_2d) #array function converts list into array 
print(type(list1)) 
print(type(arr_2d))

Выход –

 
список python 2d
список python 2d

И теперь, если мы попытаемся таким же образом найти 1-й столбец всех строк, мы получим правильный ответ с помощью 2d-массива.

print(list_2d[:][1]) # Incorrect Output- [4, 5, 6] 
print(arr_2d[:,1]) # Correct Output -[ 2 5 8 11]

список python 2d
список python 2d

Преимущества использования 2d списка:

Мы не можем просто использовать 1d-список для каждой цели. Предположим, у нас есть данные о разных товарах, купленных разными клиентами, и мы хотим сохранить эти товары в списке.

Один из способов сделать это:

customer_1=["rice", "cumin seeds", "wheat"] 
customer_2=["detergent", "soap", "shampoo"] 
customer_3=["bread", "eggs", "salt"]

Но давайте предположим, что у нас есть 1000 клиентов или, может быть, больше, будет ли это правильным способом, чтобы сделать 1000 различных списков?

Но если мы используем 2d-массив для представления элементов, это будет намного лучше, чище и быстрее.

items=[ ["rice","cumin seeds","wheat"] , ["detergent","soap","shampoo"] , ["bread","eggs","salt"] ]
список python 2d
список python 2d

Кроме того, было бы очень легко получить значения из списка. Мы научимся извлекать значения из 2d-списка в python.

Как применить некоторые распространенные методы к списку 2d python:

  • append(): append () – довольно распространенная функция, используемая в списке. Он используется для добавления ценности в конце списка.

Если мы хотим добавить новый список в конце старого списка,

list_2d= [[1,2,3] ,[4,5,6],[7,8,9],[10,11,12]] 
list_2d.append([5,6,7]) 
print(list_2d)
список python 2d
список python 2d

ВЫХОД:

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [5,6,7,]]

Если мы хотим добавить элемент в последний подсписок:

print(list_2d[0].append(5))

Выход-

[[1, 2, 3 ,5], [4, 5, 6], [7, 8, 9], [10, 11, 12], [5,6,7,]]
список python 2d
список python 2d
  • sort(): Если мы хотим расположить их в порядке возрастания или убывания, мы используем sort().

Теперь давайте посмотрим, что произойдет, когда мы применим href=”https://en.wikipedia.org/wiki/Sorting_algorithm”>sort() в 2d-списке. href=”https://en.wikipedia.org/wiki/Sorting_algorithm”>sort() в 2d-списке.

list_2d=[[7, 8, 9],[ 11,10, 12], [4, 5, 6], [1, 2, 3]] 
list_2d.sort() 
list_2d # By default it gives output in ascending order

ВЫХОД:

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [11, 10, 12]]
список python 2d
список python 2d

Обратите внимание, что в выходных данных сортируется только список в целом, а не подсписок.

Если мы хотим отсортировать как подсписок, так и внешний список, мы можем использовать следующий код,

list_2d=[[7, 8, 9],[ 11,10, 12], [4, 5, 6], [1, 2, 3]]
for i in range(len(list_2d)):
   list_2d[i].sort() #sorting the sublist
list_2d.sort()
print(list_2d)

ВЫХОД-

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
список python 2d
список python 2d
  • Выравнивание 2d-списка: Когда мы преобразуем 2d-список в 1d-список, этот процесс называется выравниванием. В python так много методов и библиотек могут помочь нам в достижении цели, мы также можем сначала преобразовать 2d-список в 2d-массив, а затем применить flat() к массиву. Но поскольку мы находимся в стадии обучения, мы будем использовать наивный подход, чтобы достичь того же.
list_2d=[[7, 8, 9],[11,10, 12],[4, 5, 6],[1, 2, 3]] 
list1=[] 
for i in range(len(list_2d)): 
   for j in range(len(list_2d[i])): 
       list1.append(list_2d[i][j])

ВЫХОД-

[7, 8, 9, 11, 10, 12, 4, 5, 6, 1, 2, 3]
список python 2d
список python 2d

Надо Читать:

  • Как преобразовать строку в нижний регистр в
  • Как вычислить Квадратный корень
  • Пользовательский ввод | Функция ввода () | Ввод с клавиатуры
  • Лучшая книга для изучения Python

Вывод

Python 2d list также имеет множество преимуществ и ограничений. Мы всегда должны знать, когда его использовать. Мы должны знать, когда использовать словари, массив NumPy, список python 1d.

Попробуйте запустить программы на вашей стороне и дайте мне знать, если у вас есть какие-либо вопросы.

Счастливого кодирования!