列表和元组的基本操作,for遍历,range
1,list(增删改查):列表可以装大量数据,不限制数据的类型(int,str,bool, list,tuple,dict,set),表示方法用[ ],list和sttr有区别,list可以直接在原对象上直接进行操作.
- 表示:list = ["王美丽","张漂亮","李耐看",58,True,["高兴","快乐","兴奋"]("王昭君","西施","雪雪"),"dict","set"]方括号每一项用","(逗号)隔开,列表和字符串一样,也有索引和切片.
- 索引:起始下角标 是"0"(表示从左到右),(-1)表示从右到左.比如:s = "asadf" print(s[2]) 结果是:a. # 索引出来的是某一位置的元素,用索引能精确找出某一位置的元素.
lst = ["0",2,"alex",$] print(lst[2])
- 切片:用下角标(索引标出来的位置)截取部分字符串的内容(输出的是截取下来的内容)
lst = ["麻花藤", "王健林", "马云", "周鸿祎", "向华强"] print(lst[:3]) # ['麻花藤', '王健林', '马云'],:前边什么都不加默认从头开始切 print(lst[0:3]) # ['麻花藤', '王健林', '马云'],:前边加上0表示也是从头开始切
2,list常用的几种功能:
- 1>列表的增加,格式是: .append()
lst = ["麻花藤", "马云", "刘华强", "任我行"] lst.append("高天一") print(lst) # ['麻花藤', '马云', '刘华强', '任我行', '高天一'].append添加的时候,默认添加到最后的位置
- 2>列表的删除,格式是: .pop() 默认在lst后边删除元素 括号没有值默认删除最后一个元素 ,remove()指定元素删除,del 切片删除, clear()清空
lst = ["麻花藤", "马云", "刘华强", "任我行"] lst.pop(2) # 删除索引是2的列表元素 print(lst) # ['麻花藤', '马云', '任我行'] lst.pop() # 默认删除的是最后一个元素 print(lst) # ['麻花藤', '马云'] lst.remove("麻花藤") # 删除指定元素,且是单一元素 print(lst) # ['马云'] lst1 = ["盖伦", "大白梨", "提莫", "大白菜"] del lst1[1:2] # 切片删除,先索引出元素位置,再去删除 print(lst1) # ['盖伦', '提莫', '大白菜'] lst1.clear() # 清空,把lst1中的所有元素清空 print(lst1) # []
- 3>列表的修改:先去索引,切片修改,索引出lst的元素,然后进行修改和切片(索引, 修改是某一lst含有元素的修改,切片, 是修改某一段含有元素的修改.)
lst = ["太白", "日天", "wusir", "sylar"] lst[0] = "太黑" # 将列表中的第一项改成太黑 print(lst) # ['太黑', '日天', 'wusir', 'sylar'] lst[1:4:2] = "太亮" # 把太黑迭代到切片的元素,再打印出lst print(lst) # ['太黑', '太', 'wusir', '亮'] lst[1:3:2] = ["太帅"] # 是把切片出来的元素修改为太帅 print(lst) # ['太白', '太帅', 'wusir', 'sylar'] lst[1:4:2] = ["太亮","太帅"] # 从左向右一次替换元素 print(lst) # ['太白', '太亮', 'wusir', '太帅'] lst[1:4:2] = ["太亮"] # 报错 # 当切片出多个元素的时候,就迭代修改,如果是单一元素,就单一的修改元素 # 当 切片出的元素与赋值的列表元素想对应,不然就会报错
- 4>列表的查询: 列表是可迭代对象,所以可以用"for"循环来查询, 也可以直接来查询.
lst = ["太白", "日天", "wusir", "sylar"] s = lst[0] # 太白 第一个元素 print(s) for el in lst: print(el) # for循环的原理的根据索引取每一个可迭代对象的元素
- 3,lst的其他操作:
- 1> .len()表示计算lst的长度
lst = ["太白", "日天", "wusir", "sylar"] l = len(lst) # 计算列表lst的长度 print(l) # 4
-
- 2> .count(" ").....是指lst中的某一元素在列表中出现的次数.
lst = ["太白", "日天", "wusir", "sylar"] c = lst.count("太白") # 对列表中的"太白"元素进行计数 print(c)
-
- 3> .sort()是指给lst中的元素进行排序.reserve()反转
lst = ["太白", "日天", "wusir", "sylar"] lst.sort() # sort()是列表的一个内置方法,改变的是愿列表的长度 print(lst) # ['sylar', 'wusir', '太白', '日天'] lst.reverse() # reserve()是列表的一个内置方法,改变的是列表的长度 print(lst) # ['日天', '太白', 'wusir', 'sylar']
-
- 4 lst的嵌套,即列表套列表.
列如:lst = [1, "太白", "wusir", ["马虎疼", ["可口可乐"], "王剑林"]]
-
-
-
1>增:lst.append("大保健"),在lst的末尾增加一个元素"大保健"
-
-
print(lst),此时打印的结果是:[1, "太白", "wusir", ["马虎疼", ["可口可乐"], "王剑林"],"大保健"]
-
-
-
2>删:lst.pop("可口可乐"),把lst中的"可口可乐"元素删掉
-
-
print(lst),此时打印的是:[1, "太白", "wusir", ["马虎疼", "王剑林"]]
-
-
3>改:lst[3][1][0] = lst[3][1][0].replace("可口可乐","大保健"),把lst中的"可口可乐"换成"大保健"
-
print(lst),此时打印的是:[1, "太白", "wusir", ["马虎疼", ["大保健"], "王剑林"]]
-
-
-
4>查:lst = lst[3][1][0] (s = lst[0:2]),查找可以用索引和切片来查找.
-
-
print(lst/s),打印出来的结果分别是:"可口可乐"/[1,"太白"]
5 tuple元组:俗称不可变的列表,元组也是python的基本数据类型之一,用小括号括起来( )里边可以放任何的数据,查询可以,循环可以,切片也可以,但就是不能修改.
tu = (1, "太白", "李白", "太黑", "怎么黑") # 1,查: print(tu[3]) # 拿到的是索引是3的元素 太黑 print(tu[0:3]) # 拿到的是所以在0-3之间的元素,但不包括索引是3的元素 (1, '太白', '李白') # 2,可以遍历:for循环 for el in tu: print(el) # 拿到的是每一个元素 tu1 = (1, "哈哈", [], "呵呵") tu1[2].append("麻花藤") # 当元组中的元素是一个可变的数据类型加入一个元素也是可以的但,元组查的整体长度还是不变的 print(tu1) # (1, '哈哈', ['麻花藤'], '呵呵') # 小结:元组中的元素是不可变的,但是子元素是可以改变的,这取决于元素是否为可变的数据类型
6 range可以帮我们获取到一些数据 ,通过for循环来获取这些数据.
# range可以帮我们获取到一些数据,通过for循环来获取这些数据 for num in range(10): print(num) # 把1-9遍历出来 for num in range(1,10,2): print(num) # 把1-9遍历出来每隔2个元素取一个元素 for num in range(-1,-10,-2): print(num) # -10到-1切片,每2个元素取一个元素(-1.-3.-5.-7.-9) lst = ["雪雪", "小雪", "雪儿", "雪人", "小雪砸"] for el in lst[0:2]: print(el) # 按索引去第0,第1个元素(切片遍历)