一、定义:

list列表,使用[ ]定义,可以嵌套元组、列表、字典。

相比元组,除了定义使用中括号,还多出了增加、修改、删除元素的方法。

Python里经常使用的数据结构。


二、访问列表:

exp_list = ['one', 'this', 'is', 'a', 'tuple', 2, 3, 4, 5]

exp_list[起始位置:结束位置:步长] 

#从左向右,第一个元素的位置是0

#从右向左,第一个元素地位置是-1

#读取的元素个数 = 结束位置 - 起始位置

#从起始位置开始读取

#步长:

    默认步长是1

    起始位置<结束位置,步长是正数

    起始位置>结束位置,步长是负数

exp_list = ('one', 'this', 'is', 'a', 'list', 2, 3, 4, 5)
read_0 = exp_list[0:0]
read_1 = exp_list[0:1]
read_2 = exp_list[1:5]
read_3 = exp_list[::2]
read_4 = exp_list[-2:-1]
print(read_0)
print(read_1)
print(read_2)
print(read_3)
print(read_4)


三、列表的添加、修改、删除

下面操作都会改变原来表的值。

exp_list.append(obj)
把obj添加到exp_list列表的后面,obj可以是数字、字符、元组、列表、字典
exp_list[位置] = 值
exp_list[2] = 3  ;修改第三个元素值为3

exp_list[开始:结束]

= 值1,值2...

exp_list[0:2] = 1, 2 ;exp_list[0]=1、exp_list[1]=2

多赋值语句,exp_list的元素必须和值的个数相等。

exp_list.insert(index,obj)
exp_list.inser(1,{})在列表的位置1,添加空字典,obj同样代表任意类型
exp_list.remove(obj)
从左向右删除第一个等于obj的元素。obj同样代表任意类型
exp_list.extend(seq)

把seq每个元素追加到表后。seq可以是字符(被切片)、列表、元组。

字典,只把取键值做为追加元素。

deldel list_name删除表,list_name变量不在; del list_name[::]删除指定元素
exp_list.clear()list_name.clear(),清空所有元素,list_name还在,值为[]空列表。
exp_list.pop(index)

取出index对应值,并从列表里删除。exp_list.pop(1),取出exp_list[1],并从列表删除

exp_list.pop(),无参数,默认取最后元素,并删除最后元素

exp_list.sort()
将列表排序,默认从小到大,列表中元素必须是同一类型,否则报错。
exp_list.reverse()将当前表元素反序,忽视元素类型。

例子:

exp_list = ['one', 'this', 'is', 'a', 'tuple', 2, 3, 4, 5, 1]

exp_list.append({1:'a'})
print ('this is append:', exp_list)

exp_list[3] = ['222']
print ('this is moddify one:', exp_list)

exp_list[0:2] = 9,10
print('this is moddify two:', exp_list)

exp_list.insert(4,'i am new 4')
print('this is insert:', exp_list)

exp_list.remove(['222'])
print('this is remove:', exp_list)

exp_list.extend({1:2})
print('this is extend:', exp_list)

del exp_list[::2]
print('this is del,step=2:', exp_list)

print('pop intdex = 1:', exp_list.pop(1))
print('no indext pop:', exp_list.pop())

print('exp_list list:', exp_list)
exp_list.sort()
print('Sort list:', exp_list)
exp_list.reverse()
print('reverse list:', exp_list)


四、列表的运算、方法。

+
两个列表拼接
*
复制列表new_list =  list * 3,list列表复制三次,不会改变list表
len(list_name)
计算list_name的元素个数
max(list_name)
返回列表里最小值,列表元素必须是同一类型
min(list_name)
返回列表里最小值,列表元素必须是同一类型
list(seq)

把seq转换成列表,seq可以是字符串或元组。

字典,取所有键值,生成列表。

exp_list.count(obj)
统计obj在列表里出现的次数。
exp_list.copy()

浅复制列表exp_list,new_list = exp_list.copy()

修改非嵌套元素new_list与exp_list不同步更改

修改嵌套中的元素new_list与exp_list同步更改

exp_list.copy()示例:

exp_list = [ {1:'a'}, 2, 3, 4, 5, 1]
new_list = exp_list.copy()
print('exp_list list:\n', exp_list)
new_list[0][0] = 'b'
print('modify embedded list:\n', exp_list,'\n',new_list)
new_list[1] = 'first'
print('modify no embedded list:\n', exp_list,'\n',new_list)