一、运算
1、+
列表1+列表2——>将列表1和列表2中的元素合并,产生一个新的列表;
list1=[1,2,3]
list2=['a','b','c']
print(list1) #[1, 2, 3]
print(list1+list2) #['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']
2、*
列表*n——>将列表中的元素重复n次,产生一个新的列表;
print(list2*3) #['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']
3、比较运算
列表1==列表2——>判断两个列表中的元素是否相等;
list3=[2,1,3]
list4=[1,2,3]
print(list1==list4) #True
print(list3>list4) #True
print(list3<list2) # TypeError: '<' not supported between instances of 'int' and 'str'
4、列表赋值
is和== 比较是否相等的两种方式;
一个数据有id,value和type三种元素;
id——>地址(数据在内存中存储的地址);
value——>数据的值;
type——>数据的类型
Python中变量存储数据的时候,事先会在内存中找好地址存入具体值,然后将地址(id)存入变量(id),取出来时取的是值(value);
is——>判断地址是否相等
==——>判断值是否相等
list3=[2,1,3]
list6=[2,1,3]
list5=list3
print(list3==list6) #True
print(list3 is list6) #False 值相同,地址不同
print(list5==list3) #True
print(list5 is list3) #True 值相同,地址相同
=================
n1=['a','aa','aaa','aaaa']
n2=n1
n2.pop()
print(n1,n2) #['a', 'aa', 'aaa'] ['a', 'aa', 'aaa'] n1和n2均变化了
总结:用一个列表给另外一个列表赋值时,要注意如果是直接赋值,可能会因为修改其中一个列表的元素而影响其他列表。
如果不想相互影响,赋值时可赋切片值或者拷贝;
n1=['a','aa','aaa','aaaa']
n2=n1[:]
n2.pop()
print(n1,n2,n1[:]) # ['a', 'aa', 'aaa', 'aaaa'] ['a', 'aa', 'aaa'] ['a', 'aa', 'aaa', 'aaaa']
print(n1 is n1[:]) #False
5、in 和 not in
元素1 in 列表2 ——>元素1是否是列表2的元素;
元素1 not in 列表2——>元素1是否不是列表2的元素;
print([1,2,3] in [1,2,3,4]) #False
print([1,2,3] in [[1,2,3],1,2,3]) #True
print('abc' in [1,2,3,'abc']) #True
二、内置函数
6、len()
len(列表)——>获取指定列表的长度
print(len([1,2,3,4,5,6,'a','b','c'])) #9
7、 max和min
max(列表)——>获取列表中最大的元素
min(列表)——>获取列表中最小的元素
要求:a、列表中的元素烈性要一致,b、列表中的元素是支持比较操作的
list1=[1,23,4,5,6,7,5,54,43]
print(max(list1),min(list1)) #54,1
8、list()
list(数据)——>将指定的数据转换成列表
注意:只有序列可以被转换成列表
序列:字符,range,列表,字典,元祖,集合,迭代器
print(list('abcd'),list(range(5))) #['a', 'b', 'c', 'd'] [0, 1, 2, 3, 4]
print(list(100)) #TypeError: 'int' object is not iterable
9、count()
列表.count(元素)——>获取指定的元素在列表中的个数
films=['千与千寻','龙猫','哈儿的移动城堡','风之谷','千与千寻']
print(films.count('千与千寻')) #2
10、extend()
列表.extend(序列) --> 将序列中的元素添加到列表中
names=[9,6]
names.extend('abc')
print(names) #[9, 6, 'a', 'b', 'c']
names.extend(range(3))
print(names) #[9, 6, 'a', 'b', 'c', 0, 1, 2]
names.extend(['11', '22'])
print(names) #[9, 6, 'a', 'b', 'c', 0, 1, 2, '11', '22']
11、index()
列表.index(元素) --> 获取指定的元素在列表中的下标
注意:如果元素在列表中有多个,获取最前面的元素的下标
names = ['沉默的羔羊', '肖生克的救赎', '阿甘正传', '霸王别姬', '阿甘正传']
print(names.index('肖生克的救赎')) #1
print(names.index('阿甘正传')) #2
print(names.index('abc')) # 如果元素不存在,会报错, ValueError
12、reverse()
列表.reverse() --> 将列表中的元素倒序
names.reverse()
print(names) #['阿甘正传', '霸王别姬', '阿甘正传', '肖生克的救赎', '沉默的羔羊']
13、sort() 和 sorted
列表.sort() --> 将列表中的元素升序排序(从小到大)
列表.sort(reverse=True) --> 将列表中的元素降序排序(从大到小)
sorted(列表) --> 将列表中的元素升序排序后产生一个新的列表(不会改变原列表)
sorted(列表,reverse=True) --> 将列表中的元素降序排序后产生一个新的列表(不会改变原列表)
要求:a.列表中的元素类型要一致 b.列表中的元素是支持比较操作的
scores = [12, 89, 78, 90, 78, 100]
scores.sort()
print(scores) #[12, 78, 78, 89, 90, 100]
scores = [12, 89, 78, 90, 78, 100]
scores.sort(reverse=True)
print(scores) #[100, 90, 89, 78, 78, 12]
scores = [12, 89, 78, 90, 78, 100]
new_scores = sorted(scores, reverse=True)
print(new_scores) #[100, 90, 89, 78, 78, 12]
14、clear()
列表.clear() --> 清空列表中的元素
scores.clear()
print(scores) #[]
15、copy()
列表.copy() --> 将列表中的元素复制一份产生一个新的列表,和列表[:]的功能一样
list1 = [1, 2, 3, 'abc']
new = list1.copy() #变量2=变量1——》变量2的值与变量1相同,id不同
new1=list1 #变量2=变量1——》变量2的值和id完全与变量1 相同
print(new, id(list1), id(new)) #[1, 2, 3, 'abc'] 6603360 6630976
print(new1,id(list1),id(new1)) #[1, 2, 3, 'abc'] 6603360 6603360
网友评论