3.11 基础类型补充
- str
- #1. 首字母大写
- name="alex"
- name=name.capitalize()
- print(name)
- # 结果为 Alex
- #2. 每个单词首字母大写
- name="alex wusir"
- name=name.title()# 两个单词必须有间隔, 没有间隔, 计算机识别成一个单词
- print(name)
- # 结果为 Alex Wusir
- #3. 大小写反转
- name="Alex"
- name=name.swapcase()
- print(name)
- # 结果为 aLEX
- #4. 居中 -- 填充
- name="alex"
- name=name.center(5,"-")# 要填充多少, 填充的内容只能为一个字符
- print(name)
- # 结果为:--alex--
- #5. 查找 find index
- name="alex"
- name=name.find("x")# 找到返回索引值 找不到返回 - 1
- print(name)
- # 结果为 3
- name=name.find("b")
- print(name)
- # 结果为 -1
- name="alex"
- name=name.index("x")# 找到返回索引值, 找不到报错
- print(name)
- # 结果为: 3
- name=name.index("b")
- print(name)
- # 结果为: 报错
- #6. 拼接
- name="alex"
- name="_".join(name)# 括号填写可迭代对象
- print(name)
- # 结果为 "a_l_e_x"
- #7. 格式化
- # %s f name.format
- print("haha%s"%"ss")
- # 结果为 hahass
- haha="xx"
- name=f"alex{haha}"
- print(name)
- # 结果为 alexxx
- name="alex{}{}{}"
- name=name.format(1,2,3)
- print(name)
- # 结果为 alex123
- name="alex{2}{1}{0}"
- name=name.format("a","b","c")
- print(name)
- # 结果为 alexcba
- name="alex{a}{b}{c}"
- name=name.format(a=1,b=11,c=67)
- print(name)
- # 结果为: alex11167
- # + * 开辟新的空间
- name="alex"
- name1="wusir"
- print(id(name))
- print(id(name1))
- print(id(name1+name2))
- # 结果为: 2230092731928
- # 2230093579352
- # 2230093619312
- list(列表)
- # 定义方式
- a=list("123")# 括号里放可迭代对象
- print(a)
- # 结果为:["1","2","3"]
- #1. 排序
- list=[4,2,3]
- list.sort()# 排序 默认升序
- print(list)
- # 结果为 [2,3,4]
- list=[4,2,3]
- list.sort(reverse=True) #降序
- print(list)
- # 结果为:[2,3,4]
- #2. 反转
- list=[4,2,3]
- list.reverse()
- print(list)
- # 结果为:[3,2,4]
- # 面试题
- lst=[[]]
- new_list=lst*5 #结果为[[],[],[],[],[]]
- new_lst[0].append(10)# 此时 new_list[0]指向列表内存地址, 此时列表添加一个元素 new_list[0]内存地址不变, 因为引用都是[], 所以都改
- print(new_list)
- # 结果为[[10],[10],[10],[10],[10]]
- lst = [1,[]]
- new_lst = lst * 5
- new_lst[0] = 10# 指向 1 1 为不可变元素 所以 当前 new_lst[0]要指向 10
- print(new_lst)
- # 结果为[10,[],1,[],1[],1,[],1,[]]
- lst = [1,[]]
- new_lst = lst * 5
- new_lst[1] = 10
- print(new_lst)
- # 结果为:[1,10,1,[],1,[],1,[],1[]]
- #3. 列表的合并
- # 方式一
- lst.extend(lst1)
- print(lst)
- # 方式二
- print(lst+lst1)
- new_lst=lst*5
- print(id(new_lst[0]),id(new_lst[0]))
- # 结果为: 内存地址相同
- tuple(元组)
- tu=(12)# 数据类型是 () 中数据本身
- print(type(tu))
- # 结果为 int
- tu=(12,)# 数据类型为元组
- print(type(tu))
- # 结果为: tuple
- # 元组 + * 不可变共用, 可变也共用
- dict(字典)
- # 定义一个字典
- dic=dict(k=1,k1=2)
- print(dic)
- # 结果为:{
- k:1,k1:2
- }
- #1. 随机删除 popitem
- dic={
- "key":1,"key2":2,"key3":56
- }
- print(dic.popitem())# 返回的是被删除的键值对
- print(dic)
- # 结果为:{
- "key":1,"key2":2
- } python3.6 默认删除最后一个
- #2. 批量添加键值对 fromkeys
- dic={
- }
- dic.fromkeys("123",[23])# 批量添加键值对{
- "1":[23],"2":[23],"3":[23]
- }
- print(dic)
- # 结果为:{
- "1":[23],"2":[23],"3":[23]
- }
- dic = dict.fromkeys("123456789",1) # 批量添加键值对 "键是可迭代对象", 值 -- 会被共用
- dic["1"] = 18
- print(dic)
- # 结果为:{
- '1': 18, '2': 1, '3': 1, '4': 1, '5': 1, '6': 1, '7': 1, '8': 1, '9': 1
- }
- # 键 ["1"] 对应值是 1 不可变数字 此时改变为 18 这时只有 键 ["1"] 指向 18
- set(集合)
- set()# 空集合
- {
- }# 空字典
- # 定义集合
- set("alex")# 迭代添加
布尔值(bool)
哪些值为 False
bool:False
int:0
str: 空字符串
- list:[]
- tuple:()
- dict:{
- }
- set:set()
其他: None
数据之间的转换
- list tuple
- tuple list
- str list
name="alex" name.spilt() 结果为列表
- name["1","2"] "_".join(name)# 结果为字符串
- dict str
- dic={
- "1":2
- }
- print(str(dic),type(str(dic)))
- print(dict("{1:1}"))
- set - list
- list - set
python 数据类型
可变: list dict set
不可变: str int bool tuple
有序: int str bool list tuple
无序: dict set
取值方式:
索引: str list tuple
直接: set int bool
键: dict
来源: http://www.bubuko.com/infodetail-3156892.html