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 = ["Geeks", "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 = ["Geeks", "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:
['Geeks', 'For', 'Geeks']
List of non-homogeneous elements:
[10, 'Geeks', 20.89, 'for', 30, 'geeks']
Size of the Non-homogeneous list: 6
Original List: ['Geeks', 'for', 'Geeks']
After adding an element thelist becomes:
['Geeks', 'for', 'Geeks', 'the']
After adding an element atindex 3 the list becomes:
['Geeks', 'for', 'Geeks', 'is', 'the']
After adding 3 elements at theend, the list becomes:
['Geeks', '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:
['Geeks', 'for', 'Geeks', 'best', 'CS', 'website']
要获得有关Python列表的更深入的知识,请单击此处。
Python数组
Python数组也是一个集合,但它的项存储在连续的内存位置。它只能存储同类元素(相同数据类型的元素)。数组非常有利于对元素进行数学运算。与列表不同,数组不能直接声明。要创建数组,必须导入array
模块,并且声明的语法与列表的语法不同。
以下是可以对数组执行的一些操作:
# 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 from the array
# 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列表和数组的相似之处
数组和列表都用于存储数据:集合的目的都是存储数据。虽然列表用于存储同构和非同构数据,但数组只能存储同构数据。
# 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 = ["Geeks", "For", "Geeks"]
print("List of Strings: ")
# Printing the list
print(Homogeneous_List)
# 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)
# 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:
['Geeks', 'For', 'Geeks']
List of non-homogeneous elements:
[10, 'Geeks', 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"
# Printing modified list
print("\nModified list: ", List1)
# Declaring an array with integers values
Array1 = arr.array('i', \
[10, 20, 30, 37, 50, ])
# Printing original array
print ("\nOriginal 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("\nModified array: ", end ="")
for i in range (len(Array1)):
print (Array1[i], end =" ")
Original list: ['Geeks', 1, 'Geeks']
Modified list: ['Geeks', 'for', 'Geeks']
Original array: 10 20 30 37 50
Modified array: 10 20 30 40 50
列表和数组的元素都可以通过索引和迭代访问:为了访问列表和数组的元素,我们可以选择使用索引号或者我们可以通过迭代遍历它们。
# Python program to demonstrate
# that elements of list and array can
# be accessed through index and iteration
# 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("\nArray1: ", 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
列表和数组都可以切片:切片操作对列表和数组都有效,以获得一定范围的元素。
# Python program to demonstrate
# that both list and array can
# be accessed sliced
# 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("\nSlicing elements of the "\
"array in a\nrange 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 from\n2nd 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语法一部分的列表不同,数组只能通过导入数组模块来创建。可以通过简单地将一系列元素放在方括号周围来创建列表。以上所有代码都是这种差异的证明。
数组和列表之间的内存消耗:即使列表和数组存储相同数量的元素,它们也会占用不同数量的内存。在这种情况下,发现数组更有效,因为它们以非常紧凑的方式存储数据。
# Python program to demonstrate the
# difference in memory consumption
# of list and 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
执行数学运算:可以在数组中执行数学运算,例如将集合的每个元素除以或添加一定数量的数字,但列表不支持此类算术运算。数组为此目的进行了优化,而要在列表中执行这些操作,必须分别将操作应用于每个元素。
# Python program to demonstrate the
# difference between list and array in
# carrying out mathematical operations
# 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 可以存储同构数据和非同构数据,而数组只支持存储同构数据。
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。