基本数据类型:数字、字符串、列表、元祖、字典、集合

时间:2022-07-12 17:24:26

1、数据类型

数字:整型(int)  浮点型(float)

布尔值(bool):True/False

2、字符串

有序(有索引值),可hash

name = "seven"

name[1] #通过索引值获取对应字母
name[1:3:1] #切片,步长为1
name.find('n') #查找n值的索引
len(name) #name字符串的长度

name.strip() #去掉字符串前后多余空白;括弧内可以加其他的,例如'*',回去掉*
name.lstrip() #去左空白
name.rstrip() #去右空白

name.isdigit() #判断是否都为数字
name.isalpha() #字符串都是字母,返回True
name.islower() #判断是不是小写
name.isdecimal() #判断是不是数字

name.replace('s','S') #替换:将s 换成 S
name.capitalize() #首字母大写
name.count('e') #'e'的个数
name.center(20,'-') #name居中,共20个字符
name.split()  #分割字符串,默认以空格分割
"我叫{}".format(name)  #打印:我叫seven,{}代表格式化内容
'*'.join(name)  #字符串以*拼接,打印:s*e*v*e*n

3、列表

列表:可放多个值,有序(即有索引),可变(可修指定索引对应的值),不可Hash

l = ['egon', 'alex', 'seven', 'yuan', 'rain', 'shell']
l1 = ['a', 'b', 'c', 'd']

l[2]   #读取列表中第3个元素
l[0:2]   #切片:0-2,但是不包含2,即顾头不顾尾
l[-5:0]   #取值-5 到-1 ,包含-1值
l[::-1]   #反转列表,步长值为-1

l[2] = 'abc'   #将索引值为2 的列表值 改为'abc'
l[1:3] = 'abc', 'asd'  #连续多个修改
l.index('rain') #通过具体列表值,取得索引 l.insert(2, 'jack') #在2 索引前加上jack l.count('n') #列表中n的个数 l.sort() #按ASCII码排序 l.reverse() #反转顺序 l2 = l.copy()#浅拷贝:拷贝后独立,不随变化而变化;而里面小列表是共有的 l.append('ll') l3 = deepcopy(l) l.extend(l1) #l1拼接到l 里 l.pop() #删除最后一个 l.remove('yuan') #删掉指定的数值 del l[2] #全局性修改 l.clear() #清空整个列表
for index,i in enumerate(l) :  #循环索引值,元素
print(index,i)

 4、元组

特点:可放多个值,不可变,有序(有索引)

ages = (11, 22, 33, 44, 55)
ages = tuple(11, 22, 33, 44, 55) #创建元组
ages[1]  #索引取值
ages[1:3] #切片
for i in ages:  #循环遍历
    print(i)
len(ages)  #元组长度

11 in ages  #包含关系,返回值 True/ False

t = (1,)  #表示元组内只有一个值的时候

5、字典

是Python中的唯一映射类型。key唯一;可以存放多个V值,可修,可不唯一;无序(无需循环遍历,查找速度快)

info = {"longting":"设计师" }    #创建

info["stu1104"] = "侦探"    #增加:新命名key,等于新的V值
info.setdefault(2,"n2") #有对应K值,则返回对应的V值;无K值,则创建 新的 k值v值

info["longting"] = "新V值"    #修改:找到key,重新赋v值
info.update(dict2) #把dict2 增加到 info中;info 中有对应值 就覆盖;无则创建

"longting" in info    #判断是否在字典,key in dict 返回true/falus

info["longting"] #字典["key"] = 想要获取的V值,注意:若无此key值,则报错;推荐使用get
info.get("longting") #在字典中获取某个V值
info.get("shanshan") #若字典中无此key,打印显示none

info.pop("longting") #删除指定k,v值,打印返回删除的值
info.popitem() #随机删除,打印返回k,v
del info["alex"] #删除k,v值
info.clear()  #清空字典

# 多级字典嵌套 a ["一层key值"]["二次key值"]["三层key值"] += "补充的"  #+= 是重新加上些东西

info.copy() #拷贝
len(info)  #字典K长度
info.keys()#获取all key
info.values() #获取所有V值
info.items() #变为元祖形式
info.fromkeys(['a','b','c']) #创建对应K的字典,应用在员工字典中

for k in info:       #快速找到K,V值
...     print(k, info[k])

6、集合

特点:确定性(可Hash),互异性(去重),无序性;重点在于去重、关系运算。

iphone7 = {'alex', 'rain', 'jack', 'old_driver'}
iphone8 = {'alex', 'shanshan', 'jack', 'old_boy'}

iphone7&iphone8                  #交集
iphone7.intersection(iphone8) 

iphone7.difference(iphone8)  #只买7的人,表示差集
iphone7 - iphone8

iphone8.difference(iphone7)  #只买8的人,表示差集
iphone8 - iphone7

iphone8.union(iphone7)#并集
iphone8 | iphone7

iphone8.symmetric_difference(iphone7) #对称差集
iphone8 ^ iphone7

s = {2, 3, 4, 5}
s1 = {1, 2, 3, 4, 6, 7}
s1.add(5)    #增加一个元素,传入‘hello’
s1.update([1,2], [3,4,7])  #增加:传入多个参数;参数会分解为一个一个的,传入‘hello' ,在集合中增加为 ’h','e','l','o'
 s.issubset(s1) #s 包含于 s1;等同于 s<= s1
 s1.issuperset(s) #s1 包含 s, 等同于 s>= s1

a2 = s.isdisjion(s1)  #判断两个集合是不是不相交;in,not in 判断某元素是否在集合 = =, != 判断两个集合是否相等
s.difference_update(s1) #表示 s集合 减去s1 相同的,s剩余自己的集合

set.discard(x)  # 删除:不会出现异常
set.remove(x)  #删除会出现 KeyError 提示
set.pop()   #集合无序,返回值不确定;集合为空,用此,会有KeyError提示
set.clear()   #清空集合