2019-04-23总结
1.字符串
1.字符串1.count(字符串2) --》统计字符串中字符串出现的次数
print('aaaaaaagrgfsff'.count('aaa'))
2
2.字符串1.find(字符串2) --->返回字符串2在字符串1中出现的下标
print('How are you ! fine'.find('you'))
8
字符串1.find(字符串2,startindex,endindex) --->在指定范围中进行查找(找不到返回-1)
print(str.find(you,0,6))
3.字符串.join(序列) -->将序列中的元素取出来,中间指定字符拼接在一起产生一个新的字符串。
new_str = '*'.join('abc')
print(new_str)
a*b*c
4.max和min
max(序列),min(序列)
print(min('afalmnz'))
a
5.字符串.replace(old,new) --将字符串中指定的旧字符串全都替换成新的字符串
s = 'are you in you in'
n = s.replace('in','on',2)
print(n)
are you on you on
6.字符串.split(字符串2) ---将字符串1按照字符串2切割,返回的是列表
s = 'are you in you in'
r = s.split(' ')
print(r)
['are', 'you', 'in', 'you', 'in']
2.列表
1.什么是列表(list):
列表是python提供的容器型数据类型(序列),可变、有序
可变(元素的个数、值和顺序可变) --支持增删改
有序 ---支持下标操作
2.列表数据:[ 元素1,元素2,元素3,...]
元素:(1)可以是任何类型的数据(值、赋值后的变量、除了赋值符以外的运算表达式)
(2)不同的元素的类型可以不一样
num = 10
l1 = [9, 2.3, True, 'abc'.count('a'), num, num*2, [ ]]
print(l1)
[9, 2.3, True, 1, 10, 20, []]
3.列表元素的操作
(1)查:获取列表中的元素
(2).获取单个元素
列表[下标] ---获取指定下标对应的元素
注意:下标不能越界,下标长度0~长度减1
nemes = ['路费','名人', '太子妃', '卡卡西']
print(nemes[1])
名人
(3)获取部分字符(切片) ---结果是列表
列表[开始下标:结束下标:步长]
nemes = ['路费','名人', '太子妃', '卡卡西']
print(nemes[1:-1])
l2 = nemes[-1:1]
print(l2)
print(nemes[:2:-1])
print(nemes[:]) # 全取出来
print(nemes[::-1]) # 返序全取
['名人', '太子妃']
[]
['卡卡西']
['路费', '名人', '太子妃', '卡卡西']
['卡卡西', '太子妃', '名人', '路费']
(4)遍历
for 变量 in 列表:
循环体
变量直接取到的是列表中个每个元素
补充:
isinstance(数据,类型) ---判断指定的数据是否是给定的类型
print(isinstance(100, int)
True
练习:统计一个列表中整型元素的个数
list3 = [23, 78.2, 'asg', [12,3], 290]
c=0
for num in list3:
if isinstance(num,int):
c+=1
print(c)
3.列表元素是操作
1.增 ---添加元素
(1)列表.append(元素) --在列表最后添加一个元素(修改原列表,不会产生新的列表)
films = ['复仇者4', '指环王', '绿皮书', '你的名字']
films.append('肖生克的救赎')
print(films)
['复仇者4', '指环王', '绿皮书', '你的名字', '肖生克的救赎']
(2)列表.insert(下标,元素) --在列表中指定下标前添加指定元素
films = ['复仇者4', '指环王', '绿皮书', '你的名字']
films.insert(2,'A计划')
print(films)
['复仇者4', '指环王', 'A计划', '绿皮书', '你的名字']
练习:有一个有序的数字列表,输入一个数,
将这个数插入到列表中,要求插入后不改变顺序。
如:[1,12,32,45,60]
nums = [1, 12, 32, 45, 60]
num = int(input('请输入一个数:'))
nums = [1, 12, 32, 45, 60]
num = int(input('请输入一个数:'))
for i in range(len(nums)):
if num <= nums[i]:
nums.insert(i, num)
break
else:
nums.append(num)
print(nums)
2.删 ---删除列表中的元素
( 1)del 列表[下标] --删除列表中指定下标对应的元素(下标不能越界)
films = ['复仇者4', '指环王', '绿皮书', '你的名字']
del films[1]
print(films)
['复仇者4', '绿皮书', '你的名字']
(2)列表.remove(元素) --删除列表中指定的元素
注意:如果需要删除的元素在列表中有多个,只删最前面的一个
如果要删除的元素不存在,程序会报错
films = ['复仇者4', '指环王', '绿皮书', '你的名字','指环王','A计划']
films.remove('指环王')
print(films)
['复仇者4', '绿皮书', '你的名字', '指环王', 'A计划']
(3)
列表.pop()
列表.pop() ---取出列表中最后一个元素
列表.pop(下标) ---取出列表中指定下标对应的元素
films = ['复仇者4', '指环王', '绿皮书', '你的名字','指环王','A计划']
a=films.pop()
print(films,a)
练习:删除列表中成绩低于60的所有成绩
scores = [70, 45, 50, 87, 90, 67, 30, 100]
方法一
for i in range(len(scores)-1,-1,-1):
a = scores[i]
if a<60:
del scores[i]
print(scores)
方法二
#使用while循环控制下标在不删除的时候才增加1 ,删除的时候不变
scores = [70, 45, 50, 87, 90, 67, 30, 100]
index = 0
while index < len(scores):
if scores[index]< 60:
del scores[index]
continue
index+=1
print(scores)
方法三
for score in scores[:]:
if score < 60:
scores.remove(score)
print(scores)
注意:遍历删除的时候需要考虑两个坑(取不全,超范围)
从后面往前面取可以解决下标越界和取不全的问题
3.改 -->修改元素的值
列表[下标] = 新值 ---->-修改指定下标对应的元素为新值(下标不能越界)
balls = ['乒乓球', '篮球', '足球', '排球']
balls[1] = '羽毛球'
print(balls)
['乒乓球', '羽毛球', '足球', '排球']
4.列表运算符
(1)数学运算符:+ ,*
列表1+列表2 ----》将两个列表中的元素合并,产生一个新的列表
n = ['a', 'b']+[1,2]
print(n)
['a', 'b', 1, 2]
列表* N -->列表中的元素重复N次,产生一个新的列表
print([1,2]*3)
[1, 2, 1, 2, 1, 2]
(2)比较运算: == ,!=
print([1,2,3]==[1,2,3]) #True
print([1,2,3]==[1,2,9]) #False
5.in/not in
元素 in 列表 ---》判断列表中是否包含指定的元素
print([1,2] in [1,2,3,4,5]) #False
print([1,2] in [1,2,3,4,5,[1,2]]) #True
6.len(列表) ---》获取列表中的元素的个数
7.list(数据) ---》将指定数据转换成列表
所有的序列都可以转换成列表;将序列中的元素作为列表元素
print(list('hi'))
['h', 'i']
print(list(range(20,30)))
[20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
8.max/min
max(列表) ---》获取列表中元素最大值
min(列表) ---》获取列表中元素最小值
注意:
1.列表中元素的类型必须一致
2.数据支持比较元素符
print(max(['a', 'b', 'z']))