python基础(二)

基本数据类型

1.   int   数字

a = 10
print(a,type(a))

答案:  10   int

1.1 数字十进制转出二进制

a = 53   转换成二进制就是:   0011 0101

image

1.2 二进转十进制

0100 1010

num = 1* 2**1 + 1*2**3 + 1* 2**6

num = 74


进制转换在线工具:https://tool.lu/hexconvert/

2、布尔值 bool

True  False

3、字符串  str  

双引号或单引号引起来的都是字符串

索引、切片:
course_name = "Python从入门到精通"
# 取索引为0的值
print(course_name[0])
# 取索引0到6的值,  注意:顾头不顾尾
print(course_name[0:6])
# 取索引0到6的值,步长为2
print(course_name[0:6:2])
# 取最后到-5的位置,步长为-1
print(course_name[-1:-5:-1])
# 取-6到最后的值
print(course_name[-6:])

答案:
P
Python
Pto
通精到门
从入门到精通

字符串的常用方法

# upper lower
s1 = "DengHuoQiTan"
s2 = s1.upper()
print(s2)
s3 = s1.lower()
print(s3)

答案:	DENGHUOQITAN
	denghuoqitan

# startswith   endswith
s1 = "BaoboJack_alex"
s2 = s1.startswith("B")
print(s2)                         # True
s3 = s1.endswith('_')
print(s3)                         # False
s4 = s1.endswith("alex")
print(s4)                         # True
s4 = s1.startswith('bo',4,8)
print(s4)                        # False
s5 = s1.startswith('bo',3,8)
print(s5)                        # True


# replace
s1 = "bob是一个高级工程师,bob喜欢打球,bob很man"
s2 = s1.replace("bob","job")
print(s2)             # "job是一个高级工程师,job喜欢打球,job很man"
s3 = s1.replace('bob','job',2)
print(s3)             # "job是一个高级工程师,job喜欢打球,bob很man"


# split
names = "job bob alex"
# split默认以空格分隔,可以指定分隔符
names1 = names.split()
print(names1)           # ['job', 'bob', 'alex']      列表

names = "job:bob:alex"
names2 = names.split(":")
print(names2)           # ['job', 'bob', 'alex']      列表

names = ":job:bob:alex"
names3 = names.split(":")
print(names3)           # ['', 'job', 'bob', 'alex']   列表


# 用split做的计算器
import re
content = input("请输入内容:")
num_list = re.split(" |\+|\-|\*|\/",content)
new_list= []
for num in num_list:
if num:
new_list.append(num)
print(new_list)
for i in new_list:
i = i.replace(' ','')
if i.isdecimal():
continue
else:
print("%s不是数字"%i)
break
else:
print(eval(content.replace(' ','')))


# join
# 可以把任何的可以迭代的对象连接起来,前提是可迭代的对象不能是数字
s1 = "jobissb"
s2 = "_".join(s1)
print(s2,type(s2))        # j_o_b_i_s_s_b <class 'str'>

i1 = ["aa",'bb',"cc"]
i1_str = "+".join(i1)
print(i1_str)             # aa+bb+cc

i2 = ["aa",'bb',22]           # 此处元素不能是数字
i2_str = "+".join(i2)
print(i2_str)

'''
报错:
 File "F:/python_project/day2/s2 str.py", line 55, in <module>
    i2_str = "+".join(i2)
TypeError: sequence item 2: expected str instance, int found
'''

# strip     去除空格 、\t 、\n
s1 = " alex bob "
s2 = s1.strip()
print(s2) # alex bob 中间的空格没有去除

s3 = s1.replace(" ","")
print(s3) # alexbob 所有的空格都去除


# count
s1 = "kdjfdasklfjsaafdafafde"
num = s1.count("k")
print(num) # 2 类型:int


# format
# 第一种用法
a = "我的名字叫{},今年{}岁,我来自{}".format("周润发",28,"中国")
print(a) # 我的名字叫周润发,今年28岁,我来自中国
# 第二种用法
b = "我的名字叫{0},今年{1}岁,我来自{2},我依然叫{0}".format("周润发",28,"中国")
print(b) # 我的名字叫周润发,今年28岁,我来自中国,我依然叫周润发
# 第三种用法
c = "我的名字叫{name},今年{age}岁,我来自{country}".format(age=18,country="中国",name="江鱼儿")
print(c)


# is系列
name = "alex123"
# isalpha 判断是否全部只有字母
print(name.isalpha()) # False
# isalnum 判断是否是有字母和数字组成
print(name.isalnum()) # True
# isdecimal 判断是否为10进制
print(name.isdecimal()) # False

# 例如
num = input("请输入数字:")
if num.isdecimal():
print(num)
else:
print("您输入有误!!!")

答案:

请输入数字:32
                     32

练习题:自动算加减法算式

content = input("请输入算式:")
num_list = []
i = 0
for i in content.split("+"):
    if "-" not in i:
        num_list.append("+%s"%i)
    else:
        for index,j in enumerate(i.split("-")):
            if index == 0:
                num_list.append("+%s"%j)
            else:
                num_list.append("-%s"%j)
print(num_list)
sum = 0
for num in num_list:
    if num.startswith("+"):
        num_zheng = num.replace("+","")
        if num_zheng.isdecimal():
            sum += int(num_zheng)
    if num.startswith("-"):
        num_fu = num.replace("-","")
        if num_fu.isdecimal():
            sum -= int(num_fu)
print(sum)

答案:

请输入算式:20+8-60+20+80
['+20', '+8', '-60', '+20', '+80']
68

补充:

# capitalize
# s1 = "abcd"
# print(s1.capitalize())              # Abcd    首字母大写

# title
s4 = "this is car"
print(s4.title()) # This Is Car 单个单词首字母大写 # swapcase # s2 = "abcdGDse" # print(s2.swapcase()) # ABCDgdSE 大小写转换 # center # ret = s2.center(30,"_") # print(ret) # ___________abcdGDse___________ 长度30并居中,其他位置用 _ 填充 # count # s3 = "abcdGDaseabcd" # print(s3.count('a')) # 3 计算字符a在s3出现的次数 # find index # print(s3.find('d')) # 3 查询字符d在s3的索引位置 # print(s3.find('d',4,13)) # 12 查询字符d在s3中4-13中的哪个位置 # print(s3.find('o')) # -1 找不到返回-1 # index # print(s3.index('d')) # 3 查询字符d在s3的索引位置 # print(s3.index('d',4,13)) # 12 查询字符d在s3中4-13中的哪个位置 # print(s3.index('o')) # 报错

# 总结:find和index几乎一样,不同的是:find找不到返回-1,index找不到会报错

4、列表  list

基础知识:

1. 列表可以承载任意数据类型,存储大量的数据

2. pyton常用的容器性数据类型

3. 列表是有序的,可以按照索引切片

# 索引
# 切片(顾头不顾尾)

l2 = [1,3,2,"a",4,"b",5,"c"]
print(l2[:3])
print(l2[3:6])
print(l2[1:-2:2])
print(l2[-3:0:-2])

答案:
[1, 3, 2]
['a', 4, 'b']
[3, 'a', 'b']
['b', 'a', 3]

# 创建 3种方式




# 增删改查
# 增
# l1 = ["张三","李四","王五"]
# while 1:
# name = input("请输入新员工名字(输入'Q'或者'q'退出程序):")
# if name.upper() == "Q":
# break
# l1.append(name)
# print(l1)


# insert
# l1 = ["张三","李四","王五","陆六"]
# l1.insert(1,"刘麻子")
# print(l1)

# extend
li = ["alex","Wusir","ritian","barry","wenzhou"]
# 请将列表l2 = [1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现
l2 = [1,"a",3,4,"heart"]
li.extend(l2)
print(li)


# 删
# pop
# l1 = ["张三","李四","王五","陆六"]
# res = l1.pop(-2)
# print(res)
# print(l1)

# remove
# l1 = ["张三","李四","王五","陆六"]
# l1.remove("李四")
# print(l1)


# clear
# l1 = ["张三","李四","王五","陆六"]
# l1.clear()
# print(l1)


# del
# l1 = ["张三","李四","王五","陆六"]
# del l1[::2]
# print(l1)


# 改
# l1 = ["张三","李四","王五","陆六"]
# l1[0] = "柴七"
# print(l1)


# l1 = ["张三","李四","王五","陆六"]
# l1[1:] = ["alex","wusir"]
# print(l1)


# 查 for循环
l1 = ["张三","李四","王五","陆六"]
for i in l1:
print(i)
答案:

张三
李四
王五
陆六


练习题

li = ["alex","Wusir","ritian","barry","wenzhou"]

# 计算列表的长度
print(len(li))                     # 5
# 列表中追加元素“seven”,并输出添加后的列表
li.append("seven")
print(li)                          # ['alex', 'Wusir', 'ritian', 'barry', 'wenzhou', 'seven']
# 请在列表第1个位置插入元素"Tony",并输出添加后的列表
li.insert(1,"Tony")
print(li)                            # ['alex', 'Tony', 'Wusir', 'ritian', 'barry', 'wenzhou']
# 请修改第2个位置的元素为"Kelly",并输出修改后的列表
li[2] = "Kelly"
print(li)                              # ['alex', 'Wusir', 'Kelly', 'barry', 'wenzhou']
# 请将列表l2 = [1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现
l2 = [1,"a",3,4,"heart"]
li[5:] = l2
print(li) # ['alex', 'Wusir', 'ritian', 'barry', 'wenzhou', 1, 'a', 3, 4, 'heart']
# 请将字符串 s = "qwert" 的每一个元素添加到列表li中,一行代码实现
s = "qwert"
li[5:] = s
print(li) # ['alex', 'Wusir', 'ritian', 'barry', 'wenzhou', 'q', 'w', 'e', 'r', 't']
# 请删除列表中的元素 "ritian",并输出删除后的元素
li.remove("ritian")
print(li) # ['alex', 'Wusir', 'barry', 'wenzhou']
# # 请删除列表中第2个元素 ,并输出删除的元素和删除后的列表
pop_val = li.pop(2)
print(pop_val) # ritian
print(li) # ['alex', 'Wusir', 'barry', 'wenzhou']
# 请删除列表中的第2至4个元素 ,并输出删除后的列表
del li[2:4]
print(li) # ['alex', 'Wusir', 'wenzhou']




li = [1,2,"taibai",[1,"alex",3,]]
# 将li中的"taibai"变成大写并放回原处
li[2] = li[2].upper()
print(li) # [1, 2, 'TAIBAI', [1, 'alex', 3]]

li = [1,2,"taibai",[1,"alex",3,]]
# 给小列表[1,'alex',3,]追加一个元素,'老男孩教育'
li[-1].append("老男孩教育")
print(li) # [1, 2, 'taibai', [1, 'alex', 3, '老男孩教育']]

li = [1,2,"taibai",[1,"alex",3,]]
# 将列表中的'alex'通过字符串拼接的方式在列表中变成'alexsb'
li[-1][1] = li[-1][1] + "sb"
print(li) # [1, 2, 'taibai', [1, 'alexsb', 3]]

补充:

# count
# l1 = [2,3,7,8,3,3,3,8,9,2]
# print(l1.count(3))                # 4  count计算3在l1中出现的次数

# index
# print(l1.index(8))                # 3   idnex查询8在l1中第一次出现的索引位置

# l2 = [3,5,8,1,3,9,0,7,6]
# l2.sort()
# print(l2)          # [0, 1, 3, 3, 5, 6, 7, 8, 9]   sort给l2进行从小到大排序

# l3 = [3,5,8,1,3,9,0,7,6]
# l3.sort(reverse=True)
# print(l3)           # [9, 8, 7, 6, 5, 3, 3, 1, 0]    sort里面加个reverse进行从大到小排序

# l4 = [3,5,8,1,3,9,0,7,6]
# l4.reverse()
# print(l4)            # [6, 7, 0, 9, 3, 1, 8, 5, 3]     reverse就是把l4的顺序反过来

# 列表与列表相加
l1 = [1,2,3]
l2 = [2,3,4,5,6]
# print(l1+l2)           # [1, 2, 3, 2, 3, 4, 5, 6]       列表与列表相加

# 列表与数字相乘
l3 = [1,2,3]
print(l3*5)            # [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

补充练习题

#    坑
# 删除一下列表索引位置是奇数的值
l1 = [11,22,33,44,55,66]
# 错误:
# for i in range(len(l1)-1):
#     if i % 2 == 1:
#         l1.pop(i)
# print(l1)        # [11, 33, 44, 66]     正确答案应该是:[11, 33, 55]    why?
# 正确:

# 方式1:
# del l1[1::2]
# print(l1)          # [11, 33, 55]

# 方式2
# for i in range(len(l1)-1,-1,-1):
#     if i % 2 == 1:
#         l1.pop(i)
# print(l1)            # [11, 33, 55]

# 方式3:
new_list = []
for i in range(len(l1)):
    if i % 2 == 0:
        new_list.append(l1[i])
print(new_list)


总结:在循环一个列表时的过程中,如果你要改变列表的大小(增加值,或者删除值),那么结果很可能会出错或者报错。


5、元祖   tuple

基础知识:

只读列表,可以存大量的数据,可以索引,切片(步长)

只能查,不能增删改(注意:元祖的第一层元素不能而已

应用:

# 重要数据,用户名,密码,个人信息,不想让别人改动的一些数据,存在元祖中

# 元祖的拆包,分别赋值

a,b = (1,2)
print(a,b)

补充:

# tuple
# 注意的地方
tu1 = (2,3,4)
print(tu1,type(tu1))             # (2, 3, 4) <class 'tuple'>

tu2 = (3)
print(tu2,type(tu2))             # 3 <class 'int'>

tu2_1 = (3,)
print(tu2_1,type(tu2_1))         # (3,) <class 'tuple'>

tu3 = ("yu")
print(tu3,type(tu3))             # yu <class 'str'>

tu4 = ([1,3,5])
print(tu4,type(tu4))             # [1, 3, 5] <class 'list'>

# 总结:在创建元祖时候,单个元素没有加逗号的话,创建的数据类型就是元素的数据类型,所以在创建元素的时候,如果
# 是单个元素,都在后面加个逗号

# count
tu5 = (3,7,8,2,6,8,3,9,8,3)
print(tu5.count(8))             # 3  count计算8在元祖tu5中出现的次数

# index
print(tu5.index(9))             # 7   index是查询9在tu5中的第一次出现的索引位置

6、字典

字典:查询速度快,数据的关联性强

1、数据类型分类:

       可变类型:    list  dict set                       (不可哈希数据类型)

       不可变类型:str int  bool  tuple   (可哈希数据)

2、注意:字典是有key和value键值对组成,字典的key只能是不可变类型并且唯一的,字典的value可以为任何数据类型

3、字典的创建(有三种方式)

方式一:
dic = dict((("name","bob"),("age",18),("sex","")))

方式二:
dic = dict({"name":"job","age":18,"sex":"男"})

# 方式三
dic = dict(name="job",age=18,sex="男")

4、字典的增删改查

# 增
# 方法一:   注意:存在就修改,不存在就添加
dic = dict(name="job",age=18,sex="")
dic["hobby"] = ["篮球","足球","乒乓球"]
print(dic) 
答案:  
# {'name': 'job', 'age': 18, 'sex': '男', 'hobby': ['篮球', '足球', '乒乓球']}

dic["age"] = 28
print(dic) # {'name': 'job', 'age': 28, 'sex': '男'}
方法二:setdefault     注意:存在就不变,不存在就添加
dic = dict(name="job",age=18,sex="男")
dic.setdefault("hobby",["篮球","足球","乒乓球"])
print(dic)

dic.setdefault('age',32)
print(dic)
答案:

{'name': 'job', 'age': 18, 'sex': '男', 'hobby': ['篮球', '足球', '乒乓球']}
{'name': 'job', 'age': 18, 'sex': '男', 'hobby': ['篮球', '足球', '乒乓球']}


# 删除
# dic = dict(name="job",age=18,sex="男")
# # del
# del dic['age']
# print(dic) # {'name': 'job', 'sex': '男'}
#
# # clear
# dic.clear()
# print(dic) # {}

# pop **
dic = dict(name="job",age=18,sex="男")
ret = dic.pop("age","没有此key") # 当key不存在时不会报错,会返回"没有此key"给ret
print(ret) # 删除的key对应的值
print(dic) # {'name': 'job', 'sex': '男'}

# 改    同增方法的存在的key的赋值方法

# 查
方法一:通过key来查value
dic = dict(name="job",age=18,sex="男")
print(dic['name']) # job
# print(dic['hobby']) # 如果不存在的key会报错
方法二:通过get来查
print(dic.get('hobby')) # 如果不存在的key不会报错,会显示None
print(dic.get("age")) # 18

# 特殊类型    keys    values    items

# keys
dic = dict(name="job",age=18,sex="男")
print(dic.keys()) # dict_keys(['name', 'age', 'sex'])
# 通过list转换成列表
print(list(dic.keys())) # ['name', 'age', 'sex']
for key in dic.keys():
print(key)

答案:
name
age
sex

# values
print(dic.values()) # dict_values(['job', 18, '男'])
# 通过list转换成列表
print(list(dic.values())) # ['job', 18, '男']
# 通过for循环来获取每一个value
for value in dic.values():
print(value)

答案:
job
18


# items
dic = dict(name="job",age=18,sex="男")
print(dic.items()) # dict_items([('name', 'job'), ('age', 18), ('sex', '男')])
# 通过list转换成列表
print(list(dic.items())) # [('name', 'job'), ('age', 18), ('sex', '男')]
# 通过for循环拿到所有的元祖
for i in dic.items():
print(i)
'''
答案:
('name', 'job')
('age', 18)
('sex', '男')
'''
# 通过元祖的解包可以拿到key和value
for key,value in dic.items():
print(key,value)
'''
答案:
name job
age 18
sex 男
'''

练习题

dic = {'k1':'v1',"k2":'v2',"k3":[11,22,33]}
# 请在字典中添加一个键值对,"k4":"v4",输出添加后的字典
dic.setdefault("k4","v4")
print(dic)                   # {'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}

# 请在修改字典中"k1"对应的值'alex',输出修改后的字典
dic['k1']= "alex"
print(dic)    # {'k1': 'alex', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}

# 请在k3对应的值中追加一个元素44 ,输出修改后的字典
dic['k3'].append(44)
print(dic)     # {'k1': 'alex', 'k2': 'v2', 'k3': [11, 22, 33, 44], 'k4': 'v4'}

# 请在k3对应的值的第一个位置插入一个元素18,输出修改后的字典
dic['k3'].insert(1,18)
print(dic)     # {'k1': 'alex', 'k2': 'v2', 'k3': [11, 18, 22, 33, 44], 'k4': 'v4'}

5、字典的嵌套

dic = {
    'name':'汪峰',
    'age':48,
    'wife':[{'name':'国际章','age':38},],
    'children':{'girl_first':"小苹果","girl_second":"小怡",'girl_three':"顶顶"}
}
# 获取汪峰的名字
print(dic.get('name'))            # 汪峰
# 获取这个字典: {'name':'国际章','age':38}
print(dic.get('wife')[0])         # {'name': '国际章', 'age': 38}
# 获取汪峰妻子的名字
print(dic.get('wife')[0].get('name'))     # 国际章
# 获取汪峰的第三个孩子的名字
print(dic.get('children').get("girl_three"))    # 顶顶

练习题2

dic1 = {
    'name':['alex',2,3,5],
    'job':'teacher',
    'oldboy':{'alex':['python1','python2',100]}
}
# 将name对应的列表追加一个元素'wusir'
dic1.get('name').append("wusir")

# 将name对应的列表中的alex首字母大写
dic1.get('name')[0] = dic1.get('name')[0].capitalize()

# oldboy对应的字典加一个键值对'老男孩':'linux'
dic1.get('oldboy')['老男孩'] = 'linux'

# 将oldboy对应的字典中的alex对应的列表中的python2删除
del dic1.get('oldboy').get('alex')[1]
print(dic1)

补充:

# 创建   formkeys
dic1 = dict.fromkeys('abc',100)    # formkeys第一个参数是一个可迭代类型的数据,第二个可以为任意的数据
print(dic1)              # {'a': 100, 'b': 100, 'c': 100}

dic2 = dict.fromkeys('abc',[22,33,44])
print(dic2)             # {'a': [22, 33, 44], 'b': [22, 33, 44], 'c': [22, 33, 44]}

dic1 = dict.fromkeys('abcbd',100)
print(dic1)            # {'a': 100, 'b': 100, 'c': 100, 'd': 100}    保证key的唯一性会去重

# 坑
dic1 = {'k1':'yushen','k2':18,'k3':'alex','sex':'man'}
# 删除key中包含'k'的数据
# 错误
# for key in dic1:
# if 'k' in key:
# dic1.pop(key)
# print(dic1) # 报错

# 正确
# 方式一:
# for key in list(dic1.keys()):
# if 'k' in key:
# dic1.pop(key)
# print(dic1) # {'sex': 'man'}

# 方式二:
new_list = []
for key in dic1.keys():
if 'k' in key:
new_list.append(key)
print(new_list) # ['k1', 'k2', 'k3']
for i in new_list:
dic1.pop(i)
print("dic1====>",dic1) # dic1====> {'sex': 'man'}


总结:在循环一个字典的过程中,不要改变字典的大小(增,删字典的元素),这样会直接报错。

# update
# update第一种方式的使用
# dic1 = {'k1':'yushen','k2':18,'k3':'alex','sex':'man'}
# dic1.update(sex='woman')
# print(dic1) # {'k1': 'yushen', 'k2': 18, 'k3': 'alex', 'sex': 'woman'}
#
# dic1.update(name='wusir')
# print(dic1) # {'k1': 'yushen', 'k2': 18, 'k3': 'alex', 'sex': 'woman', 'name': 'wusir'}

# 总结:update对字典操作,有则覆盖,无则添加

# update的第二种方式的使用
# dic1.update([(1,'num1'),(2,'num2')])
# print(dic1) # {'k1': 'yushen', 'k2': 18, 'k3': 'alex', 'sex': 'man', 1: 'num1', 2: 'num2'}

# update的第三种方式的使用
# dic1 = {'k1':'yushen','k2':18,'k3':'alex','sex':'man'}
# dic1.update({'k4':'numk4','k5':'numk5'})
# print(dic1) # {'k1': 'yushen', 'k2': 18, 'k3': 'alex', 'sex': 'man', 'k4': 'numk4', 'k5': 'numk5'}



7、集合  set 

容器型的数据类型,它要求它里面的元素是不可变的数据(可哈希),但是它本身是可变的数据类型。集合是无序的。{}。

集合的作用:1、列表的去重 2、关系的测试:交集、并集、差集….

# 集合的创建
# 方法一:
# set1 = set({1,3,True,'alex'})
# print(set1,type(set1))

# 方法二
# set1 = {1,3,True,"alex"}
# print(set1)

# 增删改
# 增   add
# set1 = {1,3,True,"alex"}
# set1.add("wusir")
# print(set1)

# 删   pop   remove   clear  del
# pop   随意删一个值
# set1.pop()

# remove   通过值来删除
# set1.remove("alex")

# clear   清空集合
# del     把整个集合给删除
# del set1


# 交集   (& 或 intersection)
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 & set2)
print(set1.intersection(set2))

# 并集 (| union)
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2)
print(set1.union(set2))

# 差集
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1-set2) # set1中有的,set2中没有的
print(set1.difference(set2))

# 反交集
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 ^ set2)
print(set1.symmetric_difference(set2))

# 子集
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set1<set2) # set1是不是set2的子集,意思是set1的元素是不是都在set2中
print(set1.issubset(set2))

# 超集
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set2 > set1) # set2是不是set1的超集,意思是set2是不是包含了set1
print(set2.issuperset(set1))


8、range

类似于列表,自定制数字范围的数字列表

基础数据类型分类

按存储空间的占用分(从低到高)

数字
字符串
集合:无序,即无序存索引相关信息
元组:有序,需要存索引相关信息,不可变
列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
字典:有序,需要存key与value映射的相关信息,可变,需要处理数据的增删改(3.6之后有序)

按存值个数区分

标量/原子类型 数字,字符串
容器类型 列表,元祖,字典

按可变不可变区分

可变 列表、字典
不可变 数字,字符串,元祖,布尔值

按访问顺序区分

直接访问 数字
顺序访问(序列类型) 字符串,列表,元祖
key值访问(映射类型)

字典





-------------    end  ----------------------------

posted @ 2020-03-31 21:39  全爱国  阅读(317)  评论(0编辑  收藏  举报