其他人写的很好的博客可以学习:https://blog.csdn.net/qq_44444503/article/details/124725921?
目录
【字符串】
切片
str大小写切换
去掉str中间的空格
查找目标位置
【列表】
添加元素
删除元素
append列表后追加元素
extend扩展
insert指定位置插入
index获取索引值
count统计元素频次
【元祖】
【字典】
创建
直接追加/更改值
获取所有的键、值、键值对
修改
删除
排序
合并 +
复制 *
判断存在 in
其他
问题
L3-20220617
序列:在python当中 序列就是一组按照顺序排列的值【数据集合】
在python中 存在三种内置的序列类型:
字符串、列表、元组
【字符串】
1.序列属性:
优点:可以支持索引和切片的操作
特征:第一个正索引为0,指向的是左端,第一个索引为负数的时候,指向的是右端
切片
语法结构:str[start:end:step]
*(]
可以根据下表来获取序列对象的任意[部分]数据[起始:结束:步长]
注意:
1)step默认为1
2) 注意区别Excel 这里是:冒号
3)切片从开始索引开始截取到结束索引,不包含结束索引(俗称含头不含尾)
test="python"
# print(type(test))
# print(test[1])
# print(test[0:4]) #pyth
# print(test[0:4:2]) #pt
# print(test[0:]) #python
# print(test[:3]) #pyt
# print(test[::-1]) #倒叙输出,从右往左遍历
print(test[::-1]) #nohtyp
print(test[::-2]) #nhy
print(test[::-3]) #nt
print(test[::-4]) #ny
print(test[::-5]) #np 其实等于反着切片
str大小写切换
语法结构:str.capitalize()
语法结构:str.swapcase()
语法结构:str.title()
语法结构:str.lower()
语法结构:str.upper()
name='claire is claire'
print('首字母大写%s'%name.capitalize())#首字母大写Claire
print('首字母大写%s'%name.swapcase())#大小写互换
print('首字母大写%s'%name.title())#每个单词大小写
去掉str中间的空格
语法结构:str.strip() #去两边空格
语法结构:str.lstrip() #去左空格
语法结构:str.rstrip() #去右空格
语法结构:print(str.replace(" ","")) #去所有空格,其实就是把" "空格replace成""没有值
语法结构:print('str',join(str.split()) #join是循环取出所有值并用前面的str去链接,split是分开单词,因此print('',join(str.split()) 就可以去掉所有空格了
a=' shishishis shishish shishi '
print('去除空格%s'%a.strip()) #去除空格shishishis shishish shishi
print('去除空格%s'%a.lstrip()) #去除空格shishishis shishish shishi
print('去除空格%s'%a.rstrip()) #去除空格 shishishis shishish shishi
print(''.join(a.split())) #shishishisshishishshishi
print('啊'.join(a.split())) #shishishis啊shishish啊shishi
查找目标位置
语法结构:find()
语法结构:index()
print(test.find('p')) #0 返回下标值因为位置从零开始,find找不到返回-1 index找不到会报错
————————-——————————
【列表】
list:python当中非常重要的数据结构,是一种有序的数据集合
特点:
1:支持增删改查
2:列表中的数据是可以变化的【数据项可以变化,内存地址不会改变】
3:用[] 来表示列表类型,数据项之间用逗号来分割,注意:数据项可以是任何类型的数据
4:支持索引和切片来进行操作
{例子}
a=[1,2,3,'你好',5,6,1.2222,True]
print(a[0])
print(a[1:4])
print(a[2:])
print(a[::-1])#反转 每隔一个取一次
print(a*3)
>>>
1
[2, 3, '你好']
[3, '你好', 5, 6, 1.2222, True]
[True, 1.2222, 6, 5, '你好', 3, 2, 1]
[1, 2, 3, '你好', 5, 6, 1.2222, True, 1, 2, 3, '你好', 5, 6, 1.2222, True, 1, 2, 3, '你好', 5, 6, 1.2222, True]
添加元素
语法结构:list[索引值]=添加值
listb=[1,2,3]
print(listb) #[1, 2, 3]
listb[0]=5
print(listb) #[5, 2, 3]
删除元素
语法结构:del list[:]#用切片批量删除,输入索引值
del listb[0:2]
print(listb)#[3]
或者listb.remove(值)#删除特定的某个值
或者listb.pop(索引值) 删除索引值对应的值
append列表后追加元素
语法结构:list.append([])
lista=[0,1,2]
lista.append(2.22)#只能加一个数字,如果是数组需要加括号[],加进去也有括号
extend扩展
语法结构:list.extend([])
会加在最后
a=range(10)
print(a,type(a))
b=list(a)
print(b,type(b))
lista.extend(b)
print(lista)#[0, 8888, 1, 2, 2.22, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
lista.extend([22,33,44,55,66])
print(lista) #[0, 8888, 1, 2, 2.22, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 22, 33, 44, 55, 66]
insert指定位置插入
语法结构:list.insert([索引值,要插入的值])
print('追加一次',lista)#追加一次 [0, 1, 2, 2.22]
lista.insert(1,8888)
print('追加二次',lista)#追加二次 [0, 8888, 1, 2, 2.22]
index获取索引值
print(listb.index(具体值))
count统计元素频次
语法结构:XXX.count(对象值)
remove移除左边元素
reverse反转列表
sort列表排序
————————-——————————
【元祖】
tuple=(,)
元组:是一种不可变的序列,在创建之后不能做任何的修改*不能增删改,只能查找
1:不可变
2:用()创建元组类型,数据项用逗号来分割
3:可以是任何的类型
4:当元组中只有一个元素时,要加上逗号,不然后解释器会当做其他类型(整形)来处理
5:同样可是支持切片操作
tuple=()
print(tuple)
tuplea=([1,2,3],1,'1',1.1)
print(tuplea)
for x in tuplea:
print(x,end=" ")
————————-——————————
【字典】
字典:也是python中重要的数据类型,字典是有 键值对 组成的集合,通常使用 键来访问数据,效率非常高,和list一样 支持对数据的添加、修改、删除
特点:
1:不是序列类型 没有下标的概念,是一个无序的键值集合,是内置的高级数据类型
2:用{} 来表示字典对象,每个键值对用逗号分隔
3:键必须是不可变的类型【元组、字符串】 值可以是任意的类型
4: 唯一性 每个键必定是惟一的,如果存在重复的键,后者会覆盖前者
5:键值对(“key = value”),顾名思义,每一个键会对应一个值。
创建
语法结构:dicta={}
dicta=dict()
a={}
print(type(a))
a['name']='claire'
print(a)
直接追加/更改值
语法结构:dict['key']='value’
获取所有的键、值、键值对
dicta={'name':'claire','age':12,'class':'first'}
print(dicta.keys())
print(dicta.values())
print(dicta.items())
for key,value in dicta.items():
print('%s==%s'%(key,value),end=';')
>>>
dict_keys(['name', 'age', 'class'])
dict_values(['claire', 12, 'first'])
dict_items([('name', 'claire'), ('age', 12), ('class', 'first')])
name==claire;age==12;class==first;
修改
dicta.update({'key':'new value'})
删除
del dicta['name']=dicta.pop('name')
排序
print(sorted(dicta.items(),key=lambda d:d[0])) 不是很懂
———————————————————————
合并 +
stra+strb
lista+listb
tup1+tup2
复制 *
stra*次数
lista*次数
lista*次数
判断存在 in
print(" " in " ")
stra='你好你好你好吗'
strb='okokokk'
print(stra+strb)
print(stra*3)
print('你好'in stra)
>>>
你好你好你好吗okokokk
你好你好你好吗你好你好你好吗你好你好你好吗
True
其他
1.报错,如果报错SyntaxError: unexpected EOF while parsing,可能是少加了个括号
2. print(x,end=" ")打印不换行
3.有用的概念参考文档:https://blog.csdn.net/qq_44444503/article/details/124725921?
4.索引值以 0 为开始值,-1 为从末尾的开始位置。
5.Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组
问题
Q1请问dicta={'name':'claire','age':12,'class':'first'},如果要修改name的值,
为什么不能直接print(dicta.update({'name':'rosine'}))
>>>None
而是要这样才可以
dicta.update({'name':'rosine'})
print(dicta)
A1 因为update函数没有返回值,不能被print出来。python里没有返回值的默认none,append也是
Q2 print(sorted(dicta.items(),key=lambda d:d[0]))
key=lambda d:d[0]为什么有要这样表达,d:d[0]是什么
A2 是匿名函数 d代码前面迭代器的每个元素 d[0]表示迭代器每个元素的第一个 返回值为key
#其实还是没有懂



