一、列表是什么
- 列表是一系列按特定顺序排列的元素组成的,可以将任何东西加入列表中,其中的元素之间可以没有任何关系。鉴于列表通常包含多个元素,给列表制定一个表示复数的名称(如names)是个不错的主意。
- 用方括号[ ] 表示列表,并用逗号来分隔其中的元素。
bicycles = ['trek','cannondale','redline']
print(bicycles)
- 访问列表(根据索引)
bicycles = ['trek','cannondale','redline']
print(bicycles[0])
索引是从0开始的,-1返回最后一个列表元素,-2返回倒数第二个列表元素以此类推(通常可用在不知道列表长度的情况下访问最后的元素)。
二、修改、添加和删除元素
1、修改列表元素
bicycles = ['trek','cannondale','redline']
print(bicycles)
#修改元素值
bicycles[0] = 'handa'
print(bicycles)
2、添加元素
- 在列表末尾添加元素 append(value)
bicycles = ['trek','cannondale','redline']
print(bicycles)
#末尾添加元素
bicycles.append('handa')
print(bicycles)
方法append()让动态地创建列表易如反掌,可以先创建一个空列表,再使用一系列的append()语句添加元素。
- 在列表中插入元素 insert(index,value)
bicycles = ['trek','cannondale','redline']
print(bicycles)
#在开头添加元素
bicycles.insert( 0 ,'handa')
print(bicycles)
3、从列表中删除元素
- 使用del语句删除元素
bicycles = ['trek','cannondale','redline']
print(bicycles)
#删除开头元素
del bicycles[0]
print(bicycles)
使用del可删除任何位置处的列表元素,条件是知道其索引。
- 使用pop(index)删除元素
bicycles = ['trek','cannondale','redline']
print(bicycles)
#删除末尾元素,保存被删除的值
popped_bicycle = bicycles.pop()
print(bicycles)
print(popped_bicycle)
注:index省略时表示删除末尾
- 弹出列表中任何位置处的元素
如果要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果要在删除元素后还能继续使用它,就使用pop()。 - 根据值删除元素 remove(value)
bicycles = ['trek','cannondale','redline']
print(bicycles)
#删除特定值
bicycles.remove('redline')
print(bicycles)
使用remove( )从列表中删除元素时,也可以接着使用它的值,用变量储存起来。但是,方法remove( )只删除第一个指定的值,如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
三、组织列表
1、使用sort()对列表进行永久性排序
bicycles = ['trek','cannondale','redline']
print(bicycles)
#排序
bicycles.sort()
print(bicycles)
上述是根据字母顺序排序,也可以按照字母顺序相反的顺序排序。
bicycles = ['trek','cannondale','redline']
print(bicycles)
#排序
bicycles.sort( reverse = True)
print(bicycles)
2、使用sorted()对列表进行临时排序
bicycles = ['trek','cannondale','redline']
print("Here is the original list:")
print(bicycles)
#排序
print("\nHere is the sorted list:")
print(sorted(bicycles))
print("\nHere is the original list again:")
print(bicycles)
若要按字母顺序相反排序,向函数sorted()传递参数reverse = True即可。
3、倒着打印列表
bicycles = ['trek','cannondale','redline']
print(bicycles)
#倒序
bicycles.reverse()
print(bicycles)
方法reverse()永久性地修改列表元素的排序顺序,但可随时恢复到原来的排列顺序,对列表在调用一次reverse()即可。
4、确定列表的长度 len(list)
bicycles = ['trek','cannondale','redline']
print(len(bicycles))
四、使用列表时避免索引错误
IndexError:list index out of range
使用列表发生索引错误时,可尝试将列表或其长度打印出来。
五、遍历整个列表
names = ['Tom','Alice','Nancy']
for name in names:
print(name)
注:
- for循环中的临时变量可以选取任何变量,一般取为列表的单数形式。
- 处理好for循环中的缩进问题。循环执行的要缩进,循环结束后执行的一次性操作不缩进。
- 小心不要遗漏了冒号 :
六、创建数值列表
1、使用函数range()
for value in range( 1 , 4 ):
print(value)
函数range ()从指定的第一个开始数,并在到达指定的第二个值后停止,因此输出不会包含第二个值。
注:使用range()时,如果输出不符合预期,请尝试将指定的值加1 或者减1。
2、使用range() 创建数字列表
numbers = list(range(start,step,end))
print(numbers)
注:步长step可以省略,默认为1。
3、对数字列表执行简单的统计计算
digits = [1,2,3,4,5,6,7,8]
print( min(digits) )
print( max(digits) )
print( sum(digits) )
4、列表解析
列表解析就是讲for循环和创建新元素的代码合并成一行,并自动附加新元素。
squares = [ ]
for value in range(1,11):
square =value**2
squares.append(square)
print(squares)
#列表解析
squares = [value**2 for value in range(1,11)]
print(squares)
七、使用列表的一部分
1、切片
names = ['Tom','Alice','Nancy']
print(names[0:3])
注:
- 切片和range()一样,在到达指定的第二个索引前面的元素就停止了。
- 没有指定第一个索引,Python将自动从列表开头开始。
- 没有指定第二个索引,Python将自动到列表末尾结束。
- 要输出最后几个,可采用负数,eg:names[-2:]从倒数第二个一直截取到开头。
2、遍历切片
如果要遍历列表的部分元素,可在for循环中使用切片。
names = ['Tom','Alice','Nancy']
for name in names[0:2]:
print(name)
3、复制列表
names = ['Tom','Alice','Nancy']
another_names = names[:]
print(another_names)
八、元组
列表适合用于存储在程序运行期间可能变化的数据集,是可以修改的。元组是不可变的列表。看起来犹如列表,但使用圆括号而不是方括号来标识。使用方法和列表一样。
虽然不能修改元组的元素,但可以给存储元组的变量赋值(重新定义整个元组)。
dimensions = (200,100)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
#修改元组变量
dimensions = (400,50)
print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。