列表
普通列表 member = ['abc','def','gh']
混合列表 mix = [1,3.05,'abc',[1,2,3]]
空列表 empty = [0]
添加元素
添加单个元素 列表名.append(元素名)
添加多个元素 列表名.extend([元素1,元素2]) //添加的是一个列表
添加到指定位置 列表名.insert(位置,元素) //列表位置从0开始
(XXX.append前的是作用域)
获取元素
member[位置]
删除元素
已知元素名 列表名.remove('abc')
已知位置 del.列表名[位置] //(删除整个列表 del.列表名)
取出并删除一个元素
pop() 取出最后一个值
num=pop() 取出最后一个值
num=pop(位置)
列表分片(获取多个元素)
列表名[1:4] 获取列表中1到3位置的元素,组成新列表 //特别的有[:4] [1:] [:]
列表的操作符
[3,2,1]>[2,1,3]为false,从第一个元素开始比较,只要有一个不符合就是false
list1 = list2 + list3 2和3列表合并后赋给列表1,用于添加元素 //不能list1 = list2 + 'abc'
list1 * 3 将列表复制3次合并 //list *=3赋值给list
元素名 in 列表名 判断元素是否在列表中,返回true或者false
元素名 not in 列表名 判断元素是否不在列表中
如果列表中套有列表需要 元素名 in 列表名[列表位置]
取出列表中的列表中元素 列表名[列表位置][元素位置]
其他常用dir
列表.count(元素名) 计算元素出现次数
列表.index(元素名,范围起始,范围结束) 查找元素位置
列表.reverse() 翻转列表
列表.sort() 从小到大排序 //sort(func,key,reverse) 用list.sort(reverse=True)从大到小
拷贝列表
list1 = list2[:] 拷贝列表
list3 = list2 指定该列表为新的名字,若修改list2,则list3也改变
元组:不可改变的列表
创建 tuple1 = (1,2,3) 或者tuple2 = 1,2,3 tuple = () tuple = 1, //用的小括号和逗号
访问 tuple[1] tuple(1:4)
重复操作元组 8*(8,) //而不是8*(8)
添加元素 temp = ('a','b','c','d') temp = temp[:2] + ('e',) + temp[2:] 则temp=('a','b','e','c','d')
删除 del temp
其他操作符与列表差不多
要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
可以用list(range(1, 11))
:
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
但如果要生成[1x1, 2x2, 3x3, ..., 10x10]
怎么做?方法一是循环:
>>> L = []
>>> for x in range(1, 11):
... L.append(x * x)
...
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
写列表生成式时,把要生成的元素x * x
放到前面,后面跟for
循环,就可以把list创建出来,十分有用,多写几次,很快就可以熟悉这种语法。
for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
还可以使用两层循环,可以生成全排列:
>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']