📜  Python数组

📅  最后修改于: 2022-05-13 01:54:28.583000             🧑  作者: Mango

Python数组

数组是存储在连续内存位置的项目的集合。这个想法是将多个相同类型的项目存储在一起。这使得计算每个元素的位置变得更容易,只需将偏移量添加到基值,即数组第一个元素的内存位置(通常由数组的名称表示)。
为简单起见,我们可以将一组楼梯想象成一个数组,每一步都放置一个值(假设是你的一个朋友)。在这里,您只需知道他们所走的步数即可识别任何朋友的位置。数组可以在Python中由名为array的模块处理。当我们只需要操作特定的数据类型值时,它们会很有用。用户可以将列表视为数组。但是,用户不能限制存储在列表中的元素的类型。如果您使用数组模块创建数组,则数组的所有元素必须属于同一类型。

创建数组

Python中的数组可以通过导入数组模块来创建。 array( data_type , value_list )用于创建一个数组,其参数中指定了数据类型和值列表。

Python3
# Python program to demonstrate
# Creation of Array
 
# importing "array" for array creations
import array as arr
 
# creating an array with integer type
a = arr.array('i', [1, 2, 3])
 
# printing original array
print ("The new created array is : ", end =" ")
for i in range (0, 3):
    print (a[i], end =" ")
print()
 
# creating an array with float type
b = arr.array('d', [2.5, 3.2, 3.3])
 
# printing original array
print ("The new created array is : ", end =" ")
for i in range (0, 3):
    print (b[i], end =" ")


Python3
# Python program to demonstrate
# Adding Elements to a Array
 
# importing "array" for array creations
import array as arr
 
# array with int type
a = arr.array('i', [1, 2, 3])
 
 
print ("Array before insertion : ", end =" ")
for i in range (0, 3):
    print (a[i], end =" ")
print()
 
# inserting array using
# insert() function
a.insert(1, 4)
 
print ("Array after insertion : ", end =" ")
for i in (a):
    print (i, end =" ")
print()
 
# array with float type
b = arr.array('d', [2.5, 3.2, 3.3])
 
print ("Array before insertion : ", end =" ")
for i in range (0, 3):
    print (b[i], end =" ")
print()
 
# adding an element using append()
b.append(4.4)
 
print ("Array after insertion : ", end =" ")
for i in (b):
    print (i, end =" ")
print()


Python3
# Python program to demonstrate
# accessing of element from list
 
# importing array module
import array as arr
 
# array with int type
a = arr.array('i', [1, 2, 3, 4, 5, 6])
 
# accessing element of array
print("Access element is: ", a[0])
 
# accessing element of array
print("Access element is: ", a[3])
 
# array with float type
b = arr.array('d', [2.5, 3.2, 3.3])
 
# accessing element of array
print("Access element is: ", b[1])
 
# accessing element of array
print("Access element is: ", b[2])


Python3
# Python program to demonstrate
# Removal of elements in a Array
  
# importing "array" for array operations
import array
  
# initializing array with array values
# initializes array with signed integers
arr = array.array('i', [1, 2, 3, 1, 5])
 
# printing original array
print ("The new created array is : ", end ="")
for i in range (0, 5):
    print (arr[i], end =" ")
 
print ("\r")
 
# using pop() to remove element at 2nd position
print ("The popped element is : ", end ="")
print (arr.pop(2))
 
# printing array after popping
print ("The array after popping is : ", end ="")
for i in range (0, 4):
    print (arr[i], end =" ")
 
print("\r")
 
# using remove() to remove 1st occurrence of 1
arr.remove(1)
 
# printing array after removing
print ("The array after removing is : ", end ="")
for i in range (0, 3):
    print (arr[i], end =" ")


Python3
# Python program to demonstrate
# slicing of elements in a Array
 
# importing array module
import array as arr
 
# creating a list
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 
a = arr.array('i', l)
print("Initial Array: ")
for i in (a):
    print(i, end =" ")
 
# Print elements of a range
# using Slice operation
Sliced_array = a[3:8]
print("\nSlicing elements in a range 3-8: ")
print(Sliced_array)
 
# Print elements from a
# pre-defined point to end
Sliced_array = a[5:]
print("\nElements sliced from 5th "
      "element till the end: ")
print(Sliced_array)
 
# Printing elements from
# beginning till end
Sliced_array = a[:]
print("\nPrinting all elements using slice operation: ")
print(Sliced_array)


Python3
# Python code to demonstrate
# searching an element in array
 
  
# importing array module
import array
  
# initializing array with array values
# initializes array with signed integers
arr = array.array('i', [1, 2, 3, 1, 2, 5])
 
# printing original array
print ("The new created array is : ", end ="")
for i in range (0, 6):
    print (arr[i], end =" ")
 
print ("\r")
 
# using index() to print index of 1st occurrence of 2
print ("The index of 1st occurrence of 2 is : ", end ="")
print (arr.index(2))
 
# using index() to print index of 1st occurrence of 1
print ("The index of 1st occurrence of 1 is : ", end ="")
print (arr.index(1))


Python3
# Python code to demonstrate
# how to update an element in array
 
# importing array module
import array
 
# initializing array with array values
# initializes array with signed integers
arr = array.array('i', [1, 2, 3, 1, 2, 5])
 
# printing original array
print ("Array before updation : ", end ="")
for i in range (0, 6):
    print (arr[i], end =" ")
 
print ("\r")
 
# updating a element in a array
arr[2] = 6
print("Array after updation : ", end ="")
for i in range (0, 6):
    print (arr[i], end =" ")
print()
 
# updating a element in a array
arr[4] = 8
print("Array after updation : ", end ="")
for i in range (0, 6):
    print (arr[i], end =" ")


输出 :

The new created array is :  1 2 3 
The new created array is :  2.5 3.2 3.3 

下面提到了一些数据类型,它们将有助于创建不同数据类型的数组。

向数组添加元素

可以使用内置的 insert()函数将元素添加到数组中。插入用于将一个或多个数据元素插入到数组中。根据要求,可以在数组的开头、结尾或任何给定索引处添加新元素。 append() 还用于将其参数中提到的值添加到数组的末尾。

Python3

# Python program to demonstrate
# Adding Elements to a Array
 
# importing "array" for array creations
import array as arr
 
# array with int type
a = arr.array('i', [1, 2, 3])
 
 
print ("Array before insertion : ", end =" ")
for i in range (0, 3):
    print (a[i], end =" ")
print()
 
# inserting array using
# insert() function
a.insert(1, 4)
 
print ("Array after insertion : ", end =" ")
for i in (a):
    print (i, end =" ")
print()
 
# array with float type
b = arr.array('d', [2.5, 3.2, 3.3])
 
print ("Array before insertion : ", end =" ")
for i in range (0, 3):
    print (b[i], end =" ")
print()
 
# adding an element using append()
b.append(4.4)
 
print ("Array after insertion : ", end =" ")
for i in (b):
    print (i, end =" ")
print()

输出 :

Array before insertion : 1 2 3 
Array after insertion :  1 4 2 3 
Array before insertion : 2.5 3.2 3.3 
Array after insertion :  2.5 3.2 3.3 4.4 

访问数组中的元素

为了访问数组项,请参阅索引号。使用索引运算符[ ] 访问数组中的项目。索引必须是整数。

Python3

# Python program to demonstrate
# accessing of element from list
 
# importing array module
import array as arr
 
# array with int type
a = arr.array('i', [1, 2, 3, 4, 5, 6])
 
# accessing element of array
print("Access element is: ", a[0])
 
# accessing element of array
print("Access element is: ", a[3])
 
# array with float type
b = arr.array('d', [2.5, 3.2, 3.3])
 
# accessing element of array
print("Access element is: ", b[1])
 
# accessing element of array
print("Access element is: ", b[2])

输出 :

Access element is:  1
Access element is:  4
Access element is:  3.2
Access element is:  3.3

从数组中移除元素

可以使用内置的 remove()函数从数组中删除元素,但如果集合中不存在元素,则会出现错误。 Remove() 方法一次只删除一个元素,要删除元素范围,使用迭代器。 pop()函数也可用于从数组中删除和返回一个元素,但默认情况下它只删除数组的最后一个元素,要从数组的特定位置删除元素,元素的索引作为pop() 方法的参数。
注意 – List 中的 Remove 方法只会删除第一次出现的搜索元素。

Python3

# Python program to demonstrate
# Removal of elements in a Array
  
# importing "array" for array operations
import array
  
# initializing array with array values
# initializes array with signed integers
arr = array.array('i', [1, 2, 3, 1, 5])
 
# printing original array
print ("The new created array is : ", end ="")
for i in range (0, 5):
    print (arr[i], end =" ")
 
print ("\r")
 
# using pop() to remove element at 2nd position
print ("The popped element is : ", end ="")
print (arr.pop(2))
 
# printing array after popping
print ("The array after popping is : ", end ="")
for i in range (0, 4):
    print (arr[i], end =" ")
 
print("\r")
 
# using remove() to remove 1st occurrence of 1
arr.remove(1)
 
# printing array after removing
print ("The array after removing is : ", end ="")
for i in range (0, 3):
    print (arr[i], end =" ")

输出:

The new created array is : 1 2 3 1 5 
The popped element is : 3
The array after popping is : 1 2 1 5 
The array after removing is : 2 1 5 

数组切片

在Python数组中,有多种方法可以打印包含所有元素的整个数组,但要从数组中打印特定范围的元素,我们使用 Slice 操作。使用冒号(:) 对数组执行切片操作。要从开始到范围打印元素,使用 [:Index],从最终打印元素使用 [:-Index],从特定索引到结束打印元素,使用 [Index:],要打印范围内的元素,使用 [开始索引:结束索引]并使用切片操作打印整个列表,请使用 [:]。此外,要以相反的顺序打印整个数组,请使用 [::-1]。

Python3

# Python program to demonstrate
# slicing of elements in a Array
 
# importing array module
import array as arr
 
# creating a list
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 
a = arr.array('i', l)
print("Initial Array: ")
for i in (a):
    print(i, end =" ")
 
# Print elements of a range
# using Slice operation
Sliced_array = a[3:8]
print("\nSlicing elements in a range 3-8: ")
print(Sliced_array)
 
# Print elements from a
# pre-defined point to end
Sliced_array = a[5:]
print("\nElements sliced from 5th "
      "element till the end: ")
print(Sliced_array)
 
# Printing elements from
# beginning till end
Sliced_array = a[:]
print("\nPrinting all elements using slice operation: ")
print(Sliced_array)
输出
Initial Array: 
1 2 3 4 5 6 7 8 9 10 
Slicing elements in a range 3-8: 
array('i', [4, 5, 6, 7, 8])

Elements sliced from 5th element till the end: 
array('i', [6, 7, 8, 9, 10])

Printing all elements using slice operation: 
array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

输出 :

Initial Array: 
1 2 3 4 5 6 7 8 9 10 
Slicing elements in a range 3-8: 
array('i', [4, 5, 6, 7, 8])

Elements sliced from 5th element till the end: 
array('i', [6, 7, 8, 9, 10])

Printing all elements using slice operation: 
array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

在数组中搜索元素

为了搜索数组中的元素,我们使用Python内置的 index() 方法。此函数返回参数中提到的值第一次出现的索引。

Python3

# Python code to demonstrate
# searching an element in array
 
  
# importing array module
import array
  
# initializing array with array values
# initializes array with signed integers
arr = array.array('i', [1, 2, 3, 1, 2, 5])
 
# printing original array
print ("The new created array is : ", end ="")
for i in range (0, 6):
    print (arr[i], end =" ")
 
print ("\r")
 
# using index() to print index of 1st occurrence of 2
print ("The index of 1st occurrence of 2 is : ", end ="")
print (arr.index(2))
 
# using index() to print index of 1st occurrence of 1
print ("The index of 1st occurrence of 1 is : ", end ="")
print (arr.index(1))

输出:

The new created array is : 1 2 3 1 2 5 
The index of 1st occurrence of 2 is : 1
The index of 1st occurrence of 1 is : 0

更新数组中的元素

为了更新数组中的元素,我们只需将一个新值重新分配给我们想要更新的所需索引。

Python3

# Python code to demonstrate
# how to update an element in array
 
# importing array module
import array
 
# initializing array with array values
# initializes array with signed integers
arr = array.array('i', [1, 2, 3, 1, 2, 5])
 
# printing original array
print ("Array before updation : ", end ="")
for i in range (0, 6):
    print (arr[i], end =" ")
 
print ("\r")
 
# updating a element in a array
arr[2] = 6
print("Array after updation : ", end ="")
for i in range (0, 6):
    print (arr[i], end =" ")
print()
 
# updating a element in a array
arr[4] = 8
print("Array after updation : ", end ="")
for i in range (0, 6):
    print (arr[i], end =" ")

输出:

Array before updation : 1 2 3 1 2 5 
Array after updation : 1 2 6 1 2 5 
Array after updation : 1 2 6 1 8 5