列表
list:用中括号括起来,用“,”分割每个元素,列表中的元素可以是 数字、字符串、列表、布尔值......所有东西,可以说就是一个“集合”
li = [1,3,5,'alex','age',['sister',5],True]
列表是有序的
支持用索引、切片的方式取值
支持for、while循环
列表元素是可以用索引、切片的方式进行修改和删除的
1 li = [1,3,5,'alex','age',['sister',5],True]2 li[1] = 10
3 print(li)4 li[4] = [1,2,3,4]5 print(li)6 delli[0]7 print(li)8 """
9 [1, 10, 5, 'alex', 'age', ['sister', 5], True]10 [1, 10, 5, 'alex', [1, 2, 3, 4], ['sister', 5], True]11 [10, 5, 'alex', [1, 2, 3, 4], ['sister', 5], True]12 """
索引取值支持嵌套方式
c = li[5][0][1]print(c)#i
in和not in:
判断某个东西是否包含在某个东西里面(判断元素是否在列表中),结果是布尔值
1 li = [1,3,5,'alex','age',['sister',5],True]2 x = 1 inli3 y = 'sister' inli4 z = ['sister',5] inli5 w = 'sister'and 5 inli6 print(x,y,z,w)7 #True False True True
和其他类的转换
字符串可以使用list()转换为列表,内部使用for循环,但数值不可以
列表转换为字符串的方式:
——写for 循环:既有字符串又有数字
1 li = [1,3,5,'alex','age',['sister',5],True]2 s = ""
3 for i inli:4 s +=str(i)5 print(s)6 #135alexage['sister', 5]True
——用.join() :只有字符串
1 li = ['alex','age']2 s = "".join(li)3 print(s)4 #alexage
.clear()
给列表清空
.copy()
浅拷贝
.count()
计算元素出现的次数
x.append(c)
给x列表后追加c值
注意:c是参数,参数是调用函数时传入的变量
1 li = ['alex','age']2 v = li.append(["lala",124])3 print(v,li)4 #None ['alex', 'age', ['lala', 124]]
.extend(iterable)
将可迭代对象iterable里的元素一个一个追加,扩展原来的列表,在内部执行for循环。iterable是可迭代对象
1 li = ['alex','age']2 li.extend(["lala",124])3 print(li)4 li.extend("不得了")5 print(li)6 """
7 ['alex', 'age', 'lala', 124]8 ['alex', 'age', 'lala', 124, '不', '得', '了']9 """
.index()
根据值获取当前值的索引位置,最左侧优先
.insert(v1,v2)
在第v1位置插入v2
.pop(index)
删除列表中某个元素,默认删除最后一个,且删除的这个值可以获取
1 li = ['alex','age']2 v =li.pop()3 print(li,v)4 #['alex'] age
.remove()
删除列表中的指定值,且左边优先
.reverse()
将当前列表反转
.sort()
对当前列表排序
1 li = [11,44,22]2 li.sort()3 print(li)4 #[11, 22, 44]
对当前列表降序排列
1 li = [11,44,22]2 li.sort(reverse =True)3 print(li)4 #[44, 22, 11]
元组
tuple:是列表的一种加工,用“()”,一级元素不可被修改,不能增加或删除。
一般在创建元组时会在最后加一个“,”,以区分元组和列表
元组是有序的
1 tu = (11,44,22,["alex",2],True)2 print(tu)3 tu1 = (11,44,22,["alex",2],True,)4 print(tu1)5 """
6 (11, 44, 22, ['alex', 2], True)7 (11, 44, 22, ['alex', 2], True)8 """
元组可以通过索引和切片取值
元组支持for循环和while循环,是可迭代对象
元组可以修改内部列表的元素:
1 tu = (["alex",4,5],"ewe",)2 tu[0][2] = [1,3,5]3 print(tu)4 #(['alex', 4, [1, 3, 5]], 'ewe')
和其他类的转换
1 tu = ("asfe","ewe",)2 s = "we35123fe"
3 li = ["aweb","egg"]4 print(tuple(s),tuple(li))5 print(str(tu),list(tu))6 """
7 ('w', 'e', '3', '5', '1', '2', '3', 'f', 'e') ('aweb', 'egg')8 ('asfe', 'ewe') ['asfe', 'ewe']9 """
列表转换为字符串的方式:
——写for 循环:既有字符串又有数字
——用.join() :只有字符串
.index()
获取指定元素的索引,左侧优先
.count()
获得指定元素在元组中出现的次数
元组和列表的使用情况:
当创建的东西需要增、删、改时创建列表,当创建的东西不许修改时创建元组
字典
dict类
info ={"k1":"v1", #一个键值对
"k2":"v2"}
字典的value可以是任何值,数值、布尔值、字符串、列表、元组、字典......
字典的key可以是数值、字符串、元组、布尔值(布尔值会被忽略)
字典是无序的,即键值对的顺序是无序的
支持用索引的方式查找元素,不能切片
1 info ={2 "k1":"v1", #一个键值对
3 "k2":True,4 "k3":[7,86,9,(),{"kk1":4,"kk2":50}],5 True:(1,2,3,)6 }7 print(info)8 #{'k1': 'v1', 'k2': True, 'k3': [7, 86, 9, (), {'kk1': 4, 'kk2': 50}], True: (1, 2, 3)}
9 v = info["k3"][4]["kk2"]10 print(v)11 #50
支持删除
1 del info["k1"]2 print(info)3 del info["k3"][4]["kk1"]4 print(info)5 """
6 {'k2': True, 'k3': [7, 86, 9, (), {'kk1': 4, 'kk2': 50}], True: (1, 2, 3)}7 {'k2': True, 'k3': [7, 86, 9, (), {'kk2': 50}], True: (1, 2, 3)}8 """
for 循环 + .keys() .values() .items()
默认for循环和 .keys()结果只有key
for + .values()结果只有value
for + .items()结果是键值对
1 info = {'k2': True, 'k3': [7, 86, 9, (), {'kk2': 50}], True: (1, 2, 3)}2 for k ininfo:3 print(k)4 """
5 k26 k37 True8 """
9 for k ininfo.keys():10 print(k)11 """
12 k213 k314 True15 """
16 for v ininfo.values():17 print(v)18 """
19 True20 [7, 86, 9, (), {'kk2': 50}]21 (1, 2, 3)22 """
23 for k,v ininfo.items():24 print(k,v)25 """
26 k2 True27 k3 [7, 86, 9, (), {'kk2': 50}]28 True (1, 2, 3)29 """
.clear()
清空
.copy()
浅拷贝
dict.fromkeys()
根据序列创建字典,指定统一的值
info = dict.fromkeys(["a",1,3],"t")print(info)#{'a': 't', 1: 't', 3: 't'}
.get(key, c)
根据key获取value,如果不存在此key则返回c,不指定c返回None
.pop(key) .popitem()
前者删除字典中某个键值对,且删除的这个value可以获取
后者不可加参数,随机删除一对键值对,且可以获取删除的键值对
.setdefault()
设置新键值对,如已存在则获取当前key的值,否则设置,且获取新key对应的值
1 dic = {"k1":"v1","k2":"v2"}2 v = dic.setdefault("k3",123)3 print(dic,v)4 #{'k1': 'v1', 'k2': 'v2', 'k3': 123} 123
5 v1 = dic.setdefault("k1",123)6 print(dic,v1)7 #{'k1': 'v1', 'k2': 'v2', 'k3': 123} v1
.update()
对字典进行更新,有两种使用方式
1 dic = {"k1":"v1","k2":"v2"}2 dic.update({"k1":1,"k3":123})3 print(dic)4 #{'k1': 1, 'k2': 'v2', 'k3': 123}
1 dic = {"k1":"v1","k2":"v2"}2 dic.update(k1 = 1,k3 = 123)3 print(dic)4 #{'k1': 1, 'k2': 'v2', 'k3': 123}
注意:参数写成**kwargs,说明Python会自动转成字典