Python中列表和数组的区别比较

Python中列表和数组的区别比较

Python列表

Python编程语言有四种集合数据类型,分别是:List、Tuple、Set和Dictionary。列表是一个可变且有序的集合,即列表的元素可以更改,并且它保持其项目的插入顺序。由于顺序维护的特性,列表的每个元素都有一个固定的索引,它允许列表有重复的元素。在 Python 中,list 非常有用,因为它能够包含非同质元素。

以下是可以对列表执行的一些操作:

# Python program to demonstrate
# some operations on list

# Declaring a List of integers
IntList = [10, 20, 30]
print("List of numbers: ")

# Printing the list
print(IntList)

# Declaring a List of strings
StrList = ["geekdocs", "For", "Geeks"]
print("List of Strings: ")

# Printing the list
print(StrList)

# Declaring a list of non-homogeneous elements
Non_homogeneous_list = [10, "Geeks", 20.890, "for", 30, "geeks"]
print("List of non-homogeneous elements: ")

# Printing the list
print(Non_homogeneous_list)

# Printing size of a list
print("Size of the Non-homogeneous list: ", len(Non_homogeneous_list))

# Declaring a list
NewList = ["geekdocs", "for", "Geeks"]
print("Original List: ", NewList)

# Adding an item to the list

# Adding an item in the list
# using the append method
NewList.append("the")

# Printing the modified list
print("After adding an element the list becomes: ")
print(NewList)

# Adding an item in the list using the insert
# method to add an element at a specific position
NewList.insert(3, "is")

# Printing the modified list
print("After adding an element at index 3 the list becomes: ")
print(NewList)

# Adding multiple items to the list at the
# end using extend method
NewList.extend(["best", "CS", "website"])

# Printing the modified list
print("After adding 3 elements at the end, the list becomes: ")
print(NewList)

# Removing an item from the list

# Removing an element by
# writing the element itself
NewList.remove("the")

# Printing the modified list
print("After removing an element the list becomes: ")
print(NewList)

# Removing an element by
# specifying its position
NewList.pop(3)

# Printing the modified list
print("After removing an element  from index 3 the list becomes: ")
print(NewList)

运行结果:

List of numbers: 
[10, 20, 30]
List of Strings: 
['geekdocs', 'For', 'Geeks']
List of non-homogeneous elements: 
[10, 'geekdocs', 20.89, 'for', 30, 'geeks']
Size of the Non-homogeneous list:  6
Original List:  ['geekdocs', 'for', 'Geeks']
After adding an element thelist becomes: 
['geekdocs', 'for', 'Geeks', 'the']
After adding an element atindex 3 the list becomes: 
['geekdocs', 'for', 'Geeks', 'is', 'the']
After adding 3 elements at theend, the list becomes: 
['geekdocs', 'for', 'Geeks', 'is', 'the', 'best', 'CS', 'website']
After removing an elementthe list becomes: 
['Geeks', 'for', 'Geeks', 'is', 'best', 'CS', 'website']
After removing an element from index 3 the list becomes: 
['geekdocs', 'for', 'Geeks', 'best', 'CS', 'website']

要获得有关 python 列表的更深入的知识,请单击此处。

Python数组

Python数组也是一个集合,但它的项目存储在连续的内存位置。它只能存储同质元素(相同数据类型的元素)。数组在对元素执行数学运算时非常有用。与列表不同,数组不能直接声明。要创建数组,必须导入数组模块,并且声明的语法与列表的语法不同。

以下是可以对数组执行的一些操作:

# Python program to demonstrate
# some operations on arrays

# importing array module
import array as arr

# declaring an array of integer type
# 'i' signifies integer type and 
# elements inside [] are the array elements
a1 = arr.array('i', [10, 20, 30])

# printing array with
# data type and elements
print("Array a1: ", a1)

# printing elements of array
print ("Elements of the array a1 is : ", end = " ")
for i in range (len(a1)):
    print (a1[i], end =", ")
print()

# Declaring an array of float type
# 'd' signifies integer type and
# elements inside [] are the array elements
a2 = arr.array('d', [1.5, 2.4, 3.9])

# printing elements of array
print ("Elements of the array a2 is : ", end = " ")
for i in range (len(a2)):
    print (a2[i], end =", ")
print()

# Adding an item to the array

# Printing the elements of array a1
print ("Original elements of the array a1 is : ", end = " ")
print(*a1)

# Adding an element at the end of
# array by using the append method
a1.append(40)

# printing the modified array
print ("Elements of the array a1 after adding an element at last: ", end = " ")
print(*a1)

# Adding an element to the array at a specific index using the insert method
a1.insert(3, 35)

# printing the modified array
print ("Elements of the array a1 after adding an element at index 3: ", end = " ")
print(*a1)

# Removing an element by writing the elements itself
a1.remove(20)

# Printing the modified array
print("Array a1 after removing element 20: ", end = " ")
print(*a1)

# Removing an element of a specific index
# Removing the element of array a1 present at index 2
a1.pop(2)

# Printing the modified array
print("Array a1 after removing element of index 2: ", end = " ")
print(*a1)

运行结果:

Array a1:  array('i', [10, 20, 30])
Elements of the arraya1 is :  10, 20, 30, 
Elements of the arraya2 is :  1.5, 2.4, 3.9, 
Original elements of thearray a1 is :  10 20 30
Elements of the array a1after adding an elementat last:  10 20 30 40
Elements of the array a1after adding an elementat index 3:  10 20 30 35 40
Array a1 after removingelement 20:  10 30 35 40
Array a1 after removingelement of index 2:  10 30 40

Python列表和数组的相似之处

数组和列表都用于存储数据:集合的目的都是存储数据。虽然列表用于存储同质和非同质数据,但数组只能存储同质数据。

# Python program to demonstrate data
# storing similarities in array and list

# importing array module
import array as arr

# Declaring a Homogeneous List of strings
Homogeneous_List = ["geekdocs", "For", "Geeks"]
print("List of Strings: ")

# Printing the list
print(Homogeneous_List)

# Declaring a list of
# non-homogeneous elements
Non_homogeneous_list = [10, "geekdocs", 20.890, "for", 30, "geeks"]
print("List of non-homogeneous elements: ")

# Printing the list
print(Non_homogeneous_list)

# declaring an array of float type
# 'd' signifies integer type and
# elements inside [] are the array elements
Homogeneous_array = arr.array('d', [1.5, 2.4, 3.9])

# printing elements of array
print ("Elements of the array is  : ", end = " ")
for i in range (len(Homogeneous_array)):
    print (Homogeneous_array[i], end =", ")

运行结果:

List of Strings: 
['geekdocs', 'For', 'Geeks']
List of non-homogeneous elements: 
[10, 'geekdocs', 20.89, 'for', 30, 'geeks']
Elements of the array is :  1.5, 2.4, 3.9,

List 和 Array 都是可变的: List 和数组一样,都可以修改它们的元素,即它们是可变的。

# Python program to demonstrate
# both the list and array is mutable

# importing array module
import array as arr

# Declaring a list
List1 = ["Geeks", 1, "Geeks"]

# Printing original list
print("Original list: ", List1)

# Changing the value of the
# element at a specific index
List1[1] = "for"\n
# Printing modified list
print("Modified list: ", List1)

# Declaring an array with integers values
Array1 = arr.array('i', [10, 20, 30, 37, 50, ])

# Printing original array
print ("Original array: ", end =" ")
for i in range (len(Array1)):
    print (Array1[i], end =" ")


# Updating an element in the array
Array1[3] = 40

# Printing modified Array:
print("Modified array: ", end ="")
for i in range (len(Array1)):
    print (Array1[i], end =" ")

运行结果:

Original list:  ['geekdocs', 1, 'Geeks']
Modified list:  ['geekdocs', 'for', 'Geeks']
Original array:  10 20 30 37 50 
Modified array: 10 20 30 40 50

列表和数组的元素都可以通过索引和迭代来访问: 为了访问列表和数组的元素,可以选择使用索引号,也可以通过迭代来遍历它们。

# importing array module
import array as arr

# Declaring a list
List1 = [10, 20, 30, 20, 10, 40]

# Printing the list
print("List1 elements: ", List1, "n")

# Accessing elements of list by index number
print("Element at index 0: ", List1[0])
print("Element at index 1: ", List1[1])
print("Element at index 3: ", List1[3])
print("Element at index 4: ", List1[4])

# Accessing elements of the list
# using negative indexing

# Printing last element of the list
print("Element at last index: ", List1[-1])

# Printing 3rd last
# the element of the list
print("Element at 3rd last index: ", List1[-3])

# Accessing elements of list through iteration
print("Accessing through iteration: ", end = " ")
for item in range(len(List1)):
    print(List1[item], end =" ")


# Declaring an array
Array1 = arr.array('i', [10, 20, 30, 40, 50, 60])
print("Array1: ", Array1)

# Accessing the elements of an array

# Access element of
# array by index number
print("Element of Array1 at index 3: ", Array1[3])

# Accessing elements of
# array through iteration
print("Accessing through iteration:  ", end = " ")
for i in range (len(Array1)):
    print (Array1[i], end =" ")

运行结果:

List1 elements:  [10, 20, 30, 20, 10, 40] 

Element at index 0:  10
Element at index 1:  20
Element at index 3:  20
Element at index 4:  10
Element at last index:  40
Element at 3rd last index:  20
Accessing through iteration:  10 20 30 20 10 40 
Array1:  array('i', [10, 20, 30, 40, 50, 60])
Element of Array1 at index 3:  40
Accessing through iteration:  10 20 30 40 50 60

列表和数组都可以切片: 切片操作对列表和数组都有效,可以得到一定范围的元素。

# importing array module
import array as arr

# Declaring a list
List1 = [10, 20, 30, 20, 10, 40]

# Accessing a range of elements in the
# list using slicing operation

# Printing items of the list
# from index 1 to 3
print("List elements from  index 1 to 4: ", List1[1:4])

# Printing items of the
# list from index 2 to end
print("List elements from index 2 to last: ", List1[2:])

# Declaring an array
Array1 = arr.array('i', [10, 20, 30, 40, 50, 60])

# Accessing a range of elements in the
# array using slicing operation
Sliced_array1 = Array1[1:4]
print(" Slicing elements of the "\n"array in a range from index 1 to 4: ")
print(Sliced_array1)

# Print elements of the array
# from a defined point to end
Sliced_array2 = Array1[2:]
print("nSlicing elements of the array fromn2nd index till the end: ")
print(Sliced_array2)

运行结果:

List elements from index 1 to 4:  [20, 30, 20]
List elements from index 2 to last:  [30, 20, 10, 40]

Slicing elements of the array in a
range from index 1 to 4: 
array('i', [20, 30, 40])

Slicing elements of the array from
2nd index till the end: 
array('i', [30, 40, 50, 60])

Python列表和数组的区别:
创建的区别:与 Python 语法中的 list 不同,数组只能通过导入 array 模块来创建。可以通过简单地将一系列元素放在方括号周围来创建列表。以上所有代码都是这种差异的证明。
数组和列表之间的内存消耗:列表和数组即使存储相同数量的元素,也会占用不同数量的内存。在这种情况下,数组被发现效率更高,因为它们以非常紧凑的方式存储数据。

# importing array module
import array as arr

# importing system module
import sys

# declaring a list of 1000 elements
List = range(1000)

# printing size of each element of the list
print("Size of each element of  list in bytes: ", sys.getsizeof(List))

# printing size of the whole list
print("Size of the whole list in bytes: ", sys.getsizeof(List)*len(List))

# declaring an array of 1000 elements
Array = arr.array('i', [1]*1000)

# printing size of each
# element of the Numpy array
print("Size of each element of the array in bytes: ", Array.itemsize)

# printing size of the whole Numpy array
print("Size of the whole array in bytes: ", len(Array)*Array.itemsize)

运行结果如下:

Size of each element of list in bytes:  48
Size of the whole list in bytes:  48000
Size of each element of the array in bytes:  4
Size of the whole array in bytes:  4000

执行数学运算: 可以在数组中执行数学运算,例如将集合中的每个元素除或添加一定数量,但列表不支持这些类型的算术运算。数组为此目的进行了优化,而要在列表中执行这些操作,必须将操作分别应用于每个元素。

# importing array module
from numpy import array

# declaring a list
List =[1, 2, 3]
# declaring an array
Array = array([1, 2, 3])

try:
    # adding 5 to each element of list
    List = List + 5
except(TypeError):
    print("Lists don't support list + int")

# for array
try:

    Array = Array + 5
    # printing the array
    print("Modified array: ", Array)

except(TypeError):
    print("Arrays don't support list + int")

运行结果:

Lists don't support list + int
Modified array:  [6 7 8]

调整大小: 数组一旦声明就不能调整大小。唯一的方法是将旧数组的元素复制到更大的数组中。虽然列表可以非常有效地调整大小。

可存储的数据: List 既可以存储同质数据,也可以存储非同质数据,而数组只支持存储同质数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程