美文网首页
一阶段day7-02列表相关运算及内置函数

一阶段day7-02列表相关运算及内置函数

作者: ATM_shark | 来源:发表于2018-10-08 18:59 被阅读0次

一、运算

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

相关文章

网友评论

      本文标题:一阶段day7-02列表相关运算及内置函数

      本文链接:https://www.haomeiwen.com/subject/gjmjaftx.html