python基础数据类型***
一.数据类型
整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set).
1、 int。数字:主要用于运算。1 ,2,3...
2、 bool。判断真假:True, False.
3、 str。简单少量的储存数据,并进行相应的操作。name = 'alex',
-
a = 'ABCDEFGHIJK' print(a[0:3]) # print(a[:3]) 从开头开始取0可以默认不写 print(a[2:5]) #不包括5
print(a[:]) #默认到最后 print(a[:-1]) # -1 是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到K元素 print(a[:5:2]) #加步长 print(a[-1:-5:-2]) #反向加步长常用方法:
-
#数字符串中的元素出现的个数。 # ret3 = a1.count("a",0,4) # 可切片 a4 = "dkfjdkfasf54" #startswith 判断是否以...开头 #endswith 判断是否以...结尾 # ret4 = a4.endswith('jdk',3,6) # 顾头不顾腚 # ret5 = a4.startswith("kfj",1,4) #split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。 # ret9 = 'title,Tilte,atre,'.split('t') #format的三种玩法 格式化输出 res='{} {} {}'.format('egon',18,'male') res='{1} {0} {1}'.format('egon',18,'male') res='{name} {age} {sex}'.format(sex='male',name='egon',age=18) #strip 去除符号 name='*barry**' print(name.strip('*')) print(name.lstrip('*')) print(name.rstrip('*')) #replace 替换 name='alex say :i have one tesla,my name is alex' print(name.replace('alex','SB',1)) # 1表示替换第几个 #is系列 (判断系列) name='taibai123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdecimal()) #字符串只由十进制组成 #寻找字符串中的元素是否存在 # ret6 = a4.find("fjdk",1,6) # print(ret6) # 返回的找到的元素的索引,如果找不到返回-1 # ret61 = a4.index("fjdk",4,6) # print(ret61) # 返回的找到的元素的索引,找不到报错。 #captalize,swapcase,title print(name.capitalize()) #首字母大写 print(name.swapcase()) #大小写翻转 msg='taibai say hi' print(msg.title()) #每个单词的首字母大写 # 内同居中,总长度,空白处填充 ret2 = a1.center(20,"*") print(ret2)
- tuple。只读,不能更改。(1,'alex')
- list:大量有序数据,[1,'ses',True,[1,2,3],{'name':'jinxin'}](顺序存取)
- 三种创建方式:
-
# 方式一:(常用) l1 = [1, 2, '太白'] # 方式二:(不常用) l1 = list() # 空列表 # l1 = list(iterable) # 可迭代对象 l1 = list('123') print(l1) # ['1', '2', '3'] # 方式三:列表推导式(高级) l1 = [i for i in range(1,5) ] # 添加if 可进行筛选 print(l1) # [1, 2, 3, 4]
- 列表切片:
l1 = ['a', 'b', '太白', 3, 666] print(l1[0]) # 'a' print(l1[-1]) # 666 print(l1[1:3]) # ['b', '太白'] # 不包括3 print(l1[:-1]) # ['a', 'b', '太白', 3] print(l1[::2]) # ['a', '太白', 666] # 以第一个开始,取出步长2的元素 print(l1[::-1]) # [666, 3, '太白', 'b', 'a'] # 倒序
- append 、insert、extend(迭代的追加进列表);pop(以元素的索引删除)、remove(通过元素删除)、clear(清除)
- del(按照索引删除,也可以切片删除,以步长方式删除);改(略)
- 列表其他操作:
- count(数)(方法统计某个元素在列表中出现的次数)。
- index(方法用于从列表中找出某个值第一个匹配项的索引位置)
- sort (方法用于在原位置对列表进行排序)。
reverse (方法将列表中的元素反向存放)。
- dict:大量数据,且是关联性比较强的数据 {'name':'jinxin','age':18,'name_list':['张三','李四']}(字典的键是不可变的(可哈希))
- 不可变数据类型--》可哈希
- 可变数据类型--》不可哈希
- 创建字典的几种方式:
-
dic = dict((('one', 1),('two', 2),('three', 3))) dic = dict(one=1,two=2,three=3) dic = dict({'one': 1, 'two': 2, 'three': 3}) dic = dict(zip(['one', 'two', 'three'],[1, 2, 3])) dic = { k: v for k,v in [('one', 1),('two', 2),('three', 3)]} dic = dict.fromkeys('abcd','太白')
字典的增删改查:
dic['weight'] = 75 # 没有weight这个键,就增加键值对 dic['name'] = 'barry' # 有name这个键,就成了字典的改值 dic.setdefault('height',175) # 没有height此键,则添加 dic.setdefault('name','barry') # 有此键则不变,有返回值 # pop 通过key删除字典的键值对,有返回值,可设置返回值。 ret = dic.pop('name') #clear 清空字典 dic = {'name': '太白', 'age': 18} dic.clear() # 通过键删除键值对 dic = {'name': '太白', 'age': 18} del dic['name'] print(dic) # {'age': 18} #删除整个字典 del dic # update 改 有则覆盖,没有则添加 dic = {'name': '太白', 'age': 18} dic.update(sex='男', height=175) # 通过键查询 # 直接dic[key](没有此键会报错) dic = {'name': '太白', 'age': 18} keys() 键 dic = {'name': '太白', 'age': 18} print(dic.keys()) # dict_keys(['name', 'age']) values() 值 dic = {'name': '太白', 'age': 18} print(dic.values()) # dict_values(['太白', 18]) items() 键值对(列表内以元组方式存储) dic = {'name': '太白', 'age': 18} print(dic.items()) # dict_items([('name', '太白'), ('age', 18)])
- int。数字:主要用于运算。1 ,2,3...
- bool。判断真假:True, False.
- str。简单少量的储存数据,并进行相应的操作。name = 'alex',
- tuple。只读,不能更改。(1,'alex') 常用操作(拆包)
- list:大量有序数据,[1,'ses',True,[1,2,3],{'name':'jinxin'}]
- dict:大量数据,且是关联性比较强的数据 {'name':'jinxin','age':18,'name_list':['张三','李四']}
- set 集合,没有重复数据
-
集合的创建 set1 = set({1,2,'barry'}) set2 = {1,2,'barry'} 增加内容 set1 = {'alex','wusir','ritian','egon','barry'} set1.add('景女神') #update:迭代着增加 set1.update('Aasd') set1 = {'alex','wusir','ritian','egon','barry'} set1.remove('alex') # 删除一个元素 print(set1) set1.pop() # 随机删除一个元素 print(set1) set1.clear() # 清空集合 print(set1) del set1 # 删除集合 print(set1) 交集、并集、差集 set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} print(set1 & set2) # {4, 5} print(set1.intersection(set2)) # {4, 5} set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7,8} print(set2.union(set1)) # {1, 2, 3, 4, 5, 6, 7,8} set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} print(set1 - set2) # {1, 2, 3} print(set1.difference(set2)) # {1, 2, 3} set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} print(set1 ^ set2) # {1, 2, 3, 6, 7, 8} print(set1.symmetric_difference(set2)) # {1, 2, 3, 6, 7, 8}
其他
- enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。
- 如(1,‘小丞’)形式
-
for index, name in enumerate(li, 100): # 起始位置默认是0,可更改 print(index, name)
-
l[0] = '男神'