列表-list
li=[11,22,"age",["杨幂",["19","10"],"alex"],"name",True,"pu"]
- 列表中用[ ]
- ,分割每个元素
- 列表的元素可以是数字、字符串、列表、布尔值...
- “集合”,内部放置任何东西
功能:索引,切片,支持for、while 循环,修改,删除,in,字符串转换成列表(list())
li=[11,22,"age",["杨幂",["19","10"],"alex"],"name",True,"pu"] # 索引 print(li[2]) # 切片,切片结果也是列表 print(li[2:4]) 结果 age ['age', ['杨幂', ['19', '10'], 'alex']]
#找到19
v=li[3][1][0]
print(v)
# 修改,索引方式 li=[11,22,"age",["杨幂",["19","10"],"alex"],"name",True,"pu"] li[1]="2222" print(li) 结果 [11, '2222', 'age', ['杨幂', ['19', '10'], 'alex'], 'name', True, 'pu']
# 修改,切片方式
li=[11,22,"age",["杨幂",["19","10"],"alex"],"name",True,"pu"]
li[1:3]=["2222","aaa"]
print(li)
# 结果
[11, '2222', 'aaa', ['杨幂', ['19', '10'], 'alex'], 'name', True, 'pu']
# 支持for、while 循环 li=[11,22,"age",["杨幂",["19","10"],"alex"],"name",True,"pu"] for item in li: print(item) 结果 11 22 age ['杨幂', ['19', '10'], 'alex'] name True pu
# 删除,索引方式 li=[11,22,"age",["杨幂",["19","10"],"alex"],"name",True,"pu"] del li[1] print(li) 结果 [11, 'age', ['杨幂', ['19', '10'], 'alex'], 'name', True, 'pu']
# 删除,切片方式
li=[11,22,"age",["杨幂",["19","10"],"alex"],"name",True,"pu"]
del li[1:3]
print(li)
# 结果
[11, ['杨幂', ['19', '10'], 'alex'], 'name', True, 'pu']
#删除某个值并获取删除的值,默认情况下删除最后一个值index--索引
li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, 22,"pu"]
v=li.pop(2)
print(v)
print(li)
# 结果
age
[11, 22, ['杨幂', ['19', '10'], 'alex'], 'name', True, 'pu', 22]
# 删除列表中的某个值,左边优先
li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, 22,"pu"]
v=li.remove(22)
print(v)
print(li)
# 结果
None
[11, 'age', ['杨幂', ['19', '10'], 'alex'], 'name', True, 22, 'pu']
#in li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, "pu"] v=22 in li print(v) # 结果 True
# 字符串转换成列表,数字不能转换成列表 str = "fast2biubiu" v=list(str) print(v) # 结果 ['f', 'a', 's', 't', '2', 'b', 'i', 'u', 'b', 'i', 'u']
# 列表转换成字符串,若既有数字又有字符串
li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, "pu"]
s=""
for item in li:
s+=str(item)
print(s)
# 结果
1122age['杨幂', ['19', '10'], 'alex']nameTruepu
# 列表转换成字符串,列表中的元素只有字符串,通过join
li=["aa","bb","cc"]
v="".join(li)
print(v)
# 结果
aabbcc
方法:
append、删除(del[0],del[2:8],pop,remove,clear)、extend、reverse()
# list类,li是list类中的一个对象,对象具有的方法都在list类中保存 #append调用方法时传递参数,原来值后追加 li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, "pu"] v=li.append(122) print(v) v2=li.append(["love",20])#li对象调用append方法 print(li) # 结果 None [11, 22, 'age', ['杨幂', ['19', '10'], 'alex'], 'name', True, 'pu', 122, ['love', 20]]
#扩展原列表,(iterable可迭代的对象) li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, "pu",22] li.extend("age22") li.extend(["wo","bu"]) print(li) # 结果 [11, 22, 'age', ['杨幂', ['19', '10'], 'alex'], 'name', True, 'pu', 22, 'a', 'g', 'e', '2', '2', 'wo', 'bu']
#insert,在指定索引位置插入元素
li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, "pu",22]
li.insert(2,"bu")
print(li)
# 结果
[11, 22, 'bu', 'age', ['杨幂', ['19', '10'], 'alex'], 'name', True, 'pu', 22]
#清空 li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, "pu"] li.clear() print(li) # 结果 []
#copy,浅 li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, "pu"] v=li.copy() print(v) # 结果 [11, 22, 'age', ['杨幂', ['19', '10'], 'alex'], 'name', True, 'pu']
# 计算元素出现的次数 li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, "pu",22] v=li.count(22) print(v) # 结果 2
#根据值获得当前值的索引位置,(左边优先)
li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, "pu",22]
v=li.index("name")
print(v)
# 结果
4
# 反转
li = [11, 22, "age", ["杨幂", ["19", "10"], "alex"], "name", True, 22,"pu"]
li.reverse()
print(li)
# 结果
['pu', 22, True, 'name', ['杨幂', ['19', '10'], 'alex'], 'age', 22, 11]
# 排序
li = [11, 22,33,44,22,1]
li.sort()
print(li)
# 结果
[1, 11, 22, 22, 33, 44]
# 排序
li = [11, 22,33,44,22,1]
li.sort(reverse=True)
print(li)
# 结果
[44, 33, 22, 22, 11, 1]
###欠
# cmp
# key
# sorted
元组-tuple(不可删除元素)
- 用()
- 元素可以是数字、字符串、元组、列表、布尔值
- 为了区分元组和函数,一般在最后一个元素后加逗号
- 元组的第一层级元素不可删除,可通过方法删除整个元组
# 元组是列表的二次加工,加工后元素不能被修改或删除
索引、切片、for循环、
# 索引 取值“daxia”: tu=(11,"Alex",([22,"daxia",True],33,55),False,44,) v=tu[2][0][1] print(v) # 切片 取值(([22,"daxia",True],33,55),False) tu=(11,"Alex",([22,"daxia",True],33,55),False,44,) v=tu[2:4] print(v)
# for循环
tu = (11, "Alex", ([22, "daxia", True], 33, 55), False, 44,)
for item in tu:
print(item)
结果
11
Alex
([22, 'daxia', True], 33, 55)
False
44
转换 # 列表转换成元组 li=['pu', 22, True, 'name', ['杨幂', ['19', '10'], 'alex'], 'age', 22, 11] tu=tuple(li) print(tu) # 结果 ('pu', 22, True, 'name', ['杨幂', ['19', '10'], 'alex'], 'age', 22, 11) # 元组转换列表 tu = (11, "Alex", ([22, "daxia", True], 33, 55), False, 44,) v=list(tu) print(v) # 结果 [11, 'Alex', ([22, 'daxia', True], 33, 55), False, 44]
#count,获取指定元素在元组中出现的次数
tu = (11, "Alex", ([22, "daxia", True], 33, 55), False, 44,22,44) v=tu.count(44) print(v) # 结果 2
# 索引位置 tu = (11, "Alex", ([22, "daxia", True], 33, 55), False, 44,22,44) v=tu.index(44) print(v) # 结果 #4
字典-dic
1、基本结构
- 用{ }
- 元素可以是数字、字符串、元组、列表、布尔值(在内存中存储为0,1)、字典
注意:
若keys值同时有1和True,取keys为1对应的值;若有2和True,不影响;同理,False。
字典是无序的,同一个程序每次输出的顺序不一致。
索引、删除、for循环、无while循环、无发切片查找
# 字典,中是harsh保存 #列表(动态)、字典(保存根据harsh表保存)0不能作为字典的key,value可以是任何值 dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi", "k4":[ 222, { "KK1":33, True:"xiangmi" } ], "K5":("zhangyishan",22), False:22 } print(dic) # 结果:{1: 11, 'k2': 'alex', (22, 'yun'): 'yangzi', 'k4': [222, {'KK1': 33, True: 'xiangmi'}], 'K5': ('zhangyishan', 22), False: 22}
#索引 dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi", "k4":[ 222, { "chaoge":("yangguo",55), "KK1":33, True:"xiangmi" } ], "K5":("zhangyishan",22), False:22 } v=dic["k2"] v1=dic["k4"][1]["chaoge"] print(v,v1) # 结果: alex ('yangguo', 55)
# 字典支持删除 dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi", "k4":[ 222, { "chaoge":("yangguo",55), "KK1":33, True:"xiangmi" } ], "K5":("zhangyishan",22), False:22 } del dic["k2"] del dic["k4"][1]["chaoge"] print(dic) # 结果: # {1: 11, (22, 'yun'): 'yangzi', 'k4': [222, {'KK1': 33, True: 'xiangmi'}], 'K5': ('zhangyishan', 22), False: 22}

# 字典for循环,默认循环只有key dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi", "k4":[ 222, { "chaoge":("yangguo",55), "KK1":33, True:"xiangmi" } ], "K5":("zhangyishan",22), False:22 } # for item in dic: # print(item) for item in dic.keys(): print(item) # 结果: # {1 # k2 # (22, 'yun') # k4 # K5 # False dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi", "k4":[ 222, { "chaoge":("yangguo",55), "KK1":33, True:"xiangmi" } ], "K5":("zhangyishan",22), False:22 } # for item in dic: # print(item) for item in dic.values(): print(item) # 结果: # 11 # alex # yangzi # [222, {'chaoge': ('yangguo', 55), 'KK1': 33, True: 'xiangmi'}] # ('zhangyishan', 22) # 22
#取值key和value #方法一 dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi", "k4":[ 222, { "chaoge":("yangguo",55), "KK1":33, True:"xiangmi" } ], "K5":("zhangyishan",22), False:22 } for item in dic: print(item,dic[item]) # 结果: # 1 11 # k2 alex # (22, 'yun') yangzi # k4 [222, {'chaoge': ('yangguo', 55), 'KK1': 33, True: 'xiangmi'}] # K5 ('zhangyishan', 22) # False 22 #方法二 dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi", "k4":[ 222, { "chaoge":("yangguo",55), "KK1":33, True:"xiangmi" } ], "K5":("zhangyishan",22), False:22 } for k,v in dic.items(): print(k,v)
dict方法
keys(),values、items、fromkeys、get、pop、setdefault、
#1、根据序列,创建字典,并指定统一的值 v=dict.fromkeys(["k1",122,"alex"],123) print(v) # 结果 # {'k1': 123, 122: 123, 'alex': 123} #2、通过索引方式取值,若keys值不存在,报错。通过get取值不报错 dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi" } v=dic.get("k111") print(v) # 结果 # None
# 表示keys值不存在时,将后面的值返回
v=dic.get("k111","yun")
print(v)
# 结果
# yun
#3、 删除并获取值
dic={
1:11,
"k2":"alex",
(22,"yun"):"yangzi"
}
v=dic.pop("k2")
print(v)
print(dic)
# 结果
# alex
# {1: 11, (22, 'yun'): 'yangzi'}
#popitem()随机删除
dic={
1:11,
"k2":"alex",
(22,"yun"):"yangzi"
}
v=dic.popitem()
print(v)
print(dic)
# 结果
# ((22, 'yun'), 'yangzi')
# {1: 11, 'k2': 'alex'}
dic={
1:11,
"k2":"alex",
(22,"yun"):"yangzi"
}
k,v=dic.popitem()
print(dic,k,v)
# 结果
# {1: 11, 'k2': 'alex'} (22, 'yun') yangzi
# 4、设置值,若已存在,不设置,获取当前keys对应的值;若不存在,获取当前keys对应的值 dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi" } v=dic.setdefault("k3",223) print(v,dic) # 结果 # 223 {1: 11, 'k2': 'alex', (22, 'yun'): 'yangzi', 'k3': 223}
#update dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi" } v=dic.update(k1=11111,k2="yangmi") print(dic) # 结果 # {1: 11, 'k2': 'yangmi', (22, 'yun'): 'yangzi', 'k1': 11111}
#in dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi" } v="k1" in dic print(v) # 结果 # False dic={ 1:11, "k2":"alex", (22,"yun"):"yangzi" } v="alex" in dic.values() print(v) # 结果 # True
- @staticmethod # known case ,表示#静态方法,表示可以用类名.方法访问
- (*args, **kwargs)表示万能参数 # def fromkeys(*args, **kwargs): # real signature unknown
- **kwargs表示可以写成name="",也可以直接传字典
整理
常用的方法:
一、数字
int()
二、字符串
replace、find、join、strip、startwith、split、upper、lower、format
三、列表
append、extend、insert
索引、切片、循环
四、元组
特性:一级元素不能修改删除增加
索引、切片、循环
五、字典
get、update、keys、values、items
索引、循环
六、布尔值
在内存中是0或1
None,"",(),[],{},0===>False