细讲基本数据类型-列表
>>> names = []
>>> names
[]#空列表
列表特性:
1.可存放多个值
2.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序
3.可修改指定索引位置对应的值,可变
.append 追加
.insert (x,'') 插入
.extend (扩展) 合并
>>> name = ['egon','alex','seven','yuan']
>>> name1 = ['qiangzi','shaohua','xifeng']
>>> name1.extend(name) #按顺序将name里的元素追加到name1里
>>> name1
['qiangzi', 'shaohua', 'xifeng', 'egon', 'alex', 'seven', 'yuan']
列表嵌套
>>> name = ['qiangzi','xifeng','shaohua']
>>> n = [1,2,3]
>>> name.insert(1,n)
>>> name
['qiangzi', [1, 2, 3], 'xifeng', 'shaohua']
嵌套取值
['qiangzi', [1, 2, 3], 'xifeng', 'shaohua']
>>> name[1][2]
3
删除
del 直接删
>>>name1 = ['qiangzi', [1, 2, 3], 'shaohua', 'xifeng', 'egon', 'alex', 'seven', 'yuan']
>>> del name1[2]
>>> name1
['qiangzi', [1, 2, 3], 'xifeng', 'egon', 'alex', 'seven', 'yuan']
>>>
pop删#pop删不能在空列表中使用,会报错
.pop()#默认删除最后一个元素并返回删除值
>>>name1 = ['qiangzi', [1, 2, 3], 'xifeng', 'egon', 'alex', 'seven', 'yuan']
>>> name1.pop()
'yuan'
.pop(x)#删除指定元素
>>>name1 = ['qiangzi', [1, 2, 3], 'xifeng', 'egon', 'alex', 'seven', 'yuan']
>>> name1.pop(1)
[1, 2, 3]
.clear清空
>>>name1 = ['qiangzi', 'xifeng', 'egon', 'alex', 'seven']
>>> name1.clear()
>>> name1
[]
.remove()#从左到右找到第一个匹配的()元素删掉,如果没有就报错。
>>> names = ['qiangzi','xifeng','shaohua','qiangzi']
>>> names.remove('qiangzi')
>>> names
['xifeng', 'shaohua', 'qiangzi']
修改操作 #直接赋值就可以
>>> name1 = ['qiangzi', 'xifeng', 'egon', 'alex', 'seven']
>>> name1[-1] = '啥也不是'
>>> name1
['qiangzi', 'xifeng', 'egon', 'alex', '啥也不是']
查操作
.index #返回从作开始匹配道德的第一个元素的索引,不能查列表中没有的元素
>>> name1 = ['qiangzi', 'xifeng', 'egon', 'alex', '啥也不是']
>>> name1.index('啥也不是')
4
.count #返回元素相同值得个数,可查列表中没有的元素。返回 0。
>>> name = ['qiangzi','xifeng','shaohua','qiangzi']
>>> name.count('qiangzi')
2
直接查
>>> name = ['qiangzi','xifeng','shaohua','qiangzi']
>>> 'daqiang' in name
False
切片
切片就像切面包,可以同时取出元素的多个值
names[start:end]
>>> names = ['qiangzi', 'shaohua', 'xifeng', 'egon', 'alex', 'seven', 'yuan']
>>> names[0:4] #不包含下标4的元素。切片的特性顾头不顾尾,start元素会包含end-1是实际取出元素
['qiangzi', 'shaohua', 'xifeng', 'egon']
>>> names[1:-1]
['shaohua', 'xifeng', 'egon', 'alex', 'seven']
>>> names[2:]#到最后
['xifeng', 'egon', 'alex', 'seven', 'yuan']
>>> names[:4]#从0开始
['qiangzi', 'shaohua', 'xifeng', 'egon']
倒着切#并非从右往左。一直从左往右
>>> names = ['qiangzi', 'shaohua', 'xifeng', 'egon', 'alex', 'seven', 'yuan']
>>> names[-1:-5]
[]#不可以 只能从小到大,从左往右。
>>> names[-5:-2]
['xifeng', 'egon', 'alex']
步长 = 步子的长度
names[start:end:步长]
>>> names = ['qiangzi', 'shaohua', 'xifeng', 'egon', 'alex', 'seven', 'yuan']
>>> names[1:5:2]
['shaohua', 'egon']
>>> names[::2]#只用步长
['qiangzi', 'xifeng', 'alex', 'yuan']
用len实现真正的从作右往左倒着切
names[-start:-end:-步长]
>>> names = ['qiangzi', 'shaohua', 'xifeng', 'egon', 'alex', 'seven', 'yuan']
>>> names[-1:-5]
[]
>>> names[-1:-5:-1]
['yuan', 'seven', 'alex', 'egon']
排序翻转
.reverse#把原列表翻转
>>> names = ['qiangzi', 'shaohua', 'xifeng', 'egon', 'alex', 'seven', 'yuan']
>>> names.reverse()
>>> names
['yuan', 'seven', 'alex', 'egon', 'xifeng', 'shaohua', 'qiangzi']
.sort#把原列表排序
>>> a = [1,5,7,3,2,4,9,15,62,98,56,12]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5, 7, 9, 12, 15, 56, 62, 98]
for循环 循环列表用for循环
for % in %
>>> names =['yuan', 'seven', 'alex', 'egon', 'xifeng', 'shaohua', 'qiangzi']
>>> for i in names:
... print(i)
yuan
seven
alex
egon
xifeng
shaohua
qiangzi
>>>
细讲基本数据类型-元组
不可变 = 只读列表 不能增、删、改、查
注意:元组本身不可变,如果元组找那个还包含其他可变元素,这是可变元素可以改变
语法 () tuple 元组 切片
>>> names = ()
>>> type(names)
<class 'tuple'>
注意:元组本身不可变,如果元组找那个还包含其他可变元素,这是可变元素可以改变
改变元组中可变数据类型中的值
>>> data = (36,28,75,['qiangzi','xifeng'],5,4)
>>> data[3][1] = 'daqiang'
>>> data
(36, 28, 75, ['qiangzi', 'daqiang'], 5, 4)
>>> data = (36,28,75,['qiangzi','xifeng'],5,4)
>>> id(data[3])
29119192
>>> id(data[3][0])
29088512
>>> id(data[3][1])
29088576
细讲基本数据类型-字符串
定义:字符串是一个有序的字符的集合,用于存储表示基础的文本信息,' '或" "或''' '''中间包含的内容称之为字符串
特性:
1.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序
2.可以进行切片操作
3不可变,字符串是不可变的,不能像裂变一样像改其中一个元素,所有对字符串的修改操作其实都是想当于生成了一份新数据。
>>> name = 'WANG'
>>> name
'WANG'
>>> name[0]
'W'
>>> name[-1]
'G'
>>> name[0:4]
'WANG'
>>> name[::]
'WANG'
>>> name[::-1]
'GNAW'
改变字符串生成新数据
>>> name = 'QIANG'
>>> id(name)
29088864
>>> name = 'WANG'
>>> id(name)
29088832
补充:字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意思,在引号前面加r。
>>> name = r'i\thf'
>>> name
'i\\thf'
>>> print(name)
i\thf
字符串的常用操作
.capitalize() #首字母大写
>>> name = 'wang qiang'
>>> name
'wang qiang'
>>> name.capitalize()
'Wang qiang'
.casefold() #把字符串全变小写
>>> a = 'WANG QIANG'
>>> a.casefold()
'wang qiang'
>>>
.center() #装饰
>>> a = 'WANG QIANG'
>>> a.center(50,'-')
'-------------------WANG QIANG--------------------'
.count() #差元素的个数
>>> a = 'WANG QIANG'
>>> a.count('A')
2
>>> a.count('a',0,8)
0
>>> a.count('A',0,8)
1
>>>