定义:列表是由一系列按照一定顺序排列的元素组成。
Python中用[]表示列表,用,分割元素。
number = ["one", "two", "three"]
print(number)# ['one', 'two', 'three']
列表中的元素可以是不同类型
number = ["one", "tw'o", "three", 1, 0.5]
print(number)# ['one', "tw'o", 'three', 1, 0.5]
访问列表元素只需使用索引(索引从0开始, 第一个元素的索引为0,以此类推)。当你请求获取列表元素时,Python只返回该元素,而不包括方括号和引号。
print(number[0])# one
Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素。倒数第二个则是-2,以此类推。
print(number[-1]) #0.5
修改元素的值,只需要将新值赋值给对应索引处即可
number[3] = "four"
print(number)#['one', "tw'o", 'three', 'four', 0.5]
在列表末尾添加元素
#append方法
number.append(0.5)
print(number)#['one', "tw'o", 'three', 'four', 0.5, 0.5]
在列表中插入元素
#使用insert()方法可以在列表任意位置插入新元素,只需要索引与要插入的值
number.insert(0, "zero")
print(number)#['zero', 'one', "tw'o", 'three', 'four', 0.5, 0.5]
#索引超出列表长度则添加在列表末尾,索引小于0则插入在最开始
删除元素
#使用del
#如果知道元素在列表中的位置,则可以使用del
#使用del语句将值从列表中删除后,你就无法再访问它了
del number[6]
print(number)#['zero', 'one', "tw'o", 'three', 'four', 0.5]
#使用pop()删除
#有时候,你要将元素从列表中删除,并接着使用它的值
#pop()可删除列表末尾的元素,并让你能够接着使用它
print(number.pop())#0.5
#告诉Pop()要删除的索引,它可以删除任意一个值
print(number.pop(0))#zero
print(number)#['one', "tw'o", 'three', 'four']
根据值删除元素
#remove()方法
number.remove("tw'o")
print(number)#['zero', 'one', 'three', 'four']
列表排序
#使用sort()方法对列表永久排序
numbers = [1,4,3,2]
numbers.sort()#默认由小到大排序
print(numbers)#[1,2,3,4]
numbers.sort(reverse=True)#由大到小排序
print(numbers)#[4,3,2,1]
#使用sorted对列表进行临时性排序
#要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。
numbers = [1,3,4,2]
print(sorted(numbers))#[1,2,3,4]
print(sorted(numbers, reverse=True))#[4,3,2,1]
反转列表
#要反转列表元素的排列顺序,可使用方法reverse()。
l = ["a", "b", "d", "c"]
l.reverse()
print(l)#["c", "d", "b", "a"]
列表长度
#使用函数len()可快速获悉列表的长度
l = [1,3,2]
print(len(l))#3
for循环遍历列表
nums = [1,2,3]
for num in nums:
print(num)
#1
#2
#3
#注意缩进以及冒号
Python函数range()让你能够轻松地生成一系列的数字。
for value in range(1,5):
print(value)
#1
#2
#3
#4
#注意是左闭右开
用range创建数值列表
numbers = list(range(1,6))
#[1,2,3,4,5]
#还可以指定步长
even_numbers = list(range(2,11,2))
#[2,4,6,8,10]
统计计算
numbers = [1,4,7]
print(min(numbers))#1
print(max(numbers))#7
print(sum(numbers))#12
使用列表解析式一行代码创建列表
squares = [value**2 for value in range(1,11)]
print(squares)#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
要使用这种语法,首先指定一个描述性的列表名,如squares;然后,指定一个左方括号, 并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式为value2,它计算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。在这个示例中,for循环为for value in range(1,11),它将值1~10提供给表达式value**2。
处理列表的部分元素称为切片。
要创建切片,需要指定要使用的第一个元素与最后一个元素的索引。
nums = [1,2,3,4,5,6]
#获取前三个元素
#切片也是左闭右开
print(nums[0:3])#[1,2,3]
#没有指定第一个元素索引,则从列表开头开始
print(nums[:2])#[1,2]
#同理,没有指定最后一个元素索引,则到列表末尾
print(nums[1:])#[2,3,4,5,6]
#都没指定,则表示整个列表
print(nums[:])#[1,2,3,4,5,6]
#特别指出,切片后即使是和之前列表元素相同,也不再是同一个列表,你可以用id()方法去自行判断。这点可以用在想要复制列表但不希望另一个方法会改动原来列表的元素。
#负数切片
#可以使用负数当作切片的索引,只需关注好负数索引元素位置即可
print(nums[-3:])#[4,5,6]
print(nums[:-1])#[1,2,3,4,5]
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。
nums = [1,2,3,4,5,6]
copy_nums = nums[:]
print(copy_nums)#[1,2,3,4,5,6]
nums_assign = nums
print(nums_assign)#[1,2,3,4,5,6]
#虽然切片复制列表输出一样,但他们已经不是同一个列表了。
#而赋值的话仍是同一个列表,变量名指向的内存地址相同
#因此,修改初始列表的话,nums_assign也会跟着变动,但是nums_copy就不会改变
列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网 站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修改的元素, 元组可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表被称为元组。
#元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
nums = (1,2)
print(nums[0])#1
#元组无法修改元素
#遍历元组
for num in nums:
print(num)
修改元组变量
#虽然不能修改元组的元素,但可以给存储元组的变量赋值。
nums = (1,2)
nums = (2,4)
print(nums)#(2,4)
创建空元组与单个元素元组
#创建空元组
nums = ()
#创建单个元素元组;一定要加逗号,不然会被当作括号括起来的元素
nums = (1,)
#创建空列表
nums = []
#可以使用type()来看具体的类型
nums_1 = (1,)
nums_2 = (1)
print(type(nums_1))#
print(type(nums_2))#
学习到了: