列表
列表是按照特定顺序的排列组合,就像数学中的数列,列表中的元素具有一定的排列顺序。
在Python中,列表用方括号[ ]来表示列表,比如:
>>>a= ['Python','C','Java']
1 访问列表中的元素
索引开始:0
如果我们想要打印上述列表中的Python,就需要我们访问列表中的第一个元素。在Python中,列表的访问从0开始,索引数为元素的位置减去1,访问的元素位置放在方括号里面,如果我们想要访问第一个元素Python,则索引为0,即:
>>>a=['Python','C','Java']
>>>print(a[0])
Python
或者,在python中也可以逆序访问,比如
>>>print(a[-3])
Python
修改列表元素
在刚刚的列表中,如果我想把列表a中的第三个元素Java修改为R,则可以采用如下的命令:
>>>a[2]='R' #Java在原来的列表中位置为3,所以索引为3-1=2
直接用赋值的命令(=)来修改列表中的元素,修改后,再试着打印原来的列表,看有没有修改成功。
>>>print(a)
['Python', 'C', 'R']
在列表中添加元素:append( ) insert( )
在列表末尾添加元素
在刚刚的列表末尾添加元素Ruby,使用方法append( )
>>>print(a)
['Python', 'C', 'R']
>>>a.append('Ruby')
>>>print(a)
['Python', 'C', 'R', 'Ruby']
在列表中添加元素
如果想把元素Ruby添加到Python后面,则需要使用方法insert( )。
>>>a=['Python', 'C', 'R'] # 重新定义列表,避免上一步的操作
>>>a.insert(1,'Ruby') # 将Ruby添加到Python后
>>>print(a)
['Python', 'Ruby', 'C', 'R']
从列表中删除元素 : del语句 , remove( ) , pop( )
知道元素的位置,删除某个特定位置的元素用del语句
>>>a=['Python', 'Ruby', 'C', 'Java']
>>>print(a)
['Python', 'Ruby', 'C', 'Java']
>>>del a[1] # 删除刚刚添加的Ruby
>>>print(a)
['Python', 'C', 'Java']
不知道元素的位置,但是知道要删除什么元素,使用方法remove( )
>>>a=['Python', 'Ruby', 'C', 'Java']
>>>print(a)
['Python', 'Ruby', 'C', 'Java']
>>>a.remove('Ruby')
>>>print(a)
['Python', 'C', 'Java']
如果想删除这个值并且继续使用它,可以使用方法pop( ),方法pop( )可以将原有列表中特定元素删除,并且可以将之赋值给新的变量。
>>>a=['Python', 'Ruby', 'C', 'Java']
>>>print(a)
['Python', 'Ruby', 'C', 'Java']
>>>b=a.pop(1)
>>>print(a)
['Python', 'C', 'Java']
>>>print(b)
Ruby
2
组织列表
组织列表:方法sort( ) , 函数sorted( ) , 方法reverse( )
列表的永久性排序sort( )
使用方法sort( ) 可以对列表进行永久性排序
>>>a=['Python', 'Ruby', 'C', 'Java']
>>>print(a)
['Python', 'Ruby', 'C', 'Java']
>>>a.sort() # 按照字母顺序排序
>>>print(a)
['C', 'Java', 'Python', 'Ruby']
>>>a.sort(reverse=True) #按照字母逆序排序
>>>print(a)
['Ruby', 'Python', 'Java', 'C']
列表的临时排序sorted( )
使用函数sorted( ) 可以对列表进行临时性排序
>>>a=['Python', 'Ruby', 'C', 'Java']
>>>print(a)
['Python', 'Ruby', 'C', 'Java']
>>>sorted(a) # 临时性排序
>>>print(a) #看原来的列表排序有无改变
['Python', 'Ruby', 'C', 'Java']
>>>print(sorted(a)) # 打印出临时性排序的列表
['C', 'Java', 'Python', 'Ruby']
倒着打印列表
要倒着打印列表,可以用方法reverse( ),方法reverse永久性的修改了排列的元素
>>>a=['Python', 'Ruby', 'C', 'Java']
>>>print(a)
['Python', 'Ruby', 'C', 'Java']
>>>a.reverse()
>>>print(a)
['Java', 'C', 'Ruby', 'Python']
确定列表的长度
可以用函数len( ) 确定列表的长度
>>>a=['Python', 'Ruby', 'C', 'Java']
>>>len(a)
4
使用列表时避免索引错误
常见的索引错误包括:
1、忘记索引数是元素位置减去1
2、超出访问的列表索引
3、列表为空列表时,倒着访问列表a[-1]错误
注:当发生索引错误时,可以将列表长度打印出来观察是什么错误
3 操作列表——创建数值列表
使用range( )创建数字列表
可以使用函数range( ) 和函数list( ) 创建数字列表;
函数range( ) 可以生成一系列的数字,里面第一个参数是起始值,第二个参数表示不超过这个值的终止值,第三个参数表示步长,默认为1;
函数list( ) 可以将里面的参数转换为列表。
>>>c=list(range(1,10))
>>>print(c)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>d=list(range(1,10,2))
>>>print(d)
[1, 3, 5, 7, 9]
对数字列表进行简单的统计计算
可以对数值列表进行简单的统计,例如最大值、最小值、总和。
>>>c=list(range(1,10))
>>>min(c)
Out[34]: 1
>>>max(c)
Out[35]: 9
>>>sum(c)
Out[36]: 45
4 操作列表——使用列表的一部分
切片
切片,相当于把列表其中的一部分切出来。要创建切片,可以指定第一个元素和最后一个元素的位置,切片到达第二个元素的前一个元素停止切片,类似于函数range( )
>>>a=['Python', 'Ruby', 'C', 'Java']
>>>print(a[1:3]) #切片第2到第4
['Ruby', 'C']
>>>print(a[:2]) #不指定第一个元素,从开始切片到第3个元素
['Python', 'Ruby']
>>>print(a[2:]) #不指定最后一个元素,从第3切片到最后
['C', 'Java']
>>>print(a[-3:]) #倒着切片,倒数第三个到最后一个
['Ruby', 'C', 'Java']
复制列表
使用切片的方法来复制列表,会产生两个列表。如果使用赋值(=)的方法来复制列表,第二个列表仅仅是指向第一个列表,并没有复制。
>>>a=['Python', 'Ruby', 'C', 'Java']
>>>b=a[:]
>>>a.append('CSS')
>>>print(a)
['Python', 'Ruby', 'C', 'Java', 'CSS']
>>>print(b)
['Python', 'Ruby', 'C', 'Java']
采用赋值的方法来复制列表
>>>a=['Python', 'Ruby','C', 'Java']
>>>b=a
>>>a.append('CSS')
>>>print(a)
['Python', 'Ruby', 'C', 'Java', 'CSS']
>>>print(b)
['Python', 'Ruby', 'C', 'Java', 'CSS']