字符串
goals: 1. 掌握下标以及切片操作
- 字符串常见操作
单引号 或 双引号 引住的数据就是 字符串
下标就是所谓的索引
从 0 开始 字符串从这点上来看就有点类似于字符数组
另外 -1 就是倒数第一个元素
str1 = “abc”
str1[-1] = “c”
切片
指的是对操作的对象截取其中的一部分的操作
字符串,列表,元组都支持切片操作
切片的语法 [起始下标:结束:步长]
包左不包右 步长表示选取间隔
正向获取 步长就是正数 反向获取步长为负数
str1 = "abcdefg"
str2 = str1[0:-1:2] # "aceg"
# 正向获取 步长为负数的话不报错 但是没有结果
str1[::-2]
想一想如何对一个字符串进行反转
# str1 = "abcdef"
str2 = str1[::-1] #可以对字符串进行反转
str2 = str1[-1:0:-1] # 这样不太行 因为0是取不到的
字符串的常见操作
- 字符串貌似是不可变的
str = “aab”
str[0] = “a” error ‘str’ object does not support item assignment - find(str,start=0,end=len(mystr))
存在的话返回第一个字符的索引 不存在的话返回-1 - index(str,start=0,end=len(mystr))
于find差不多 差别在于如果查找的字符串不存在的话 会报错 substring not found - cout(str,start=0,end=len(mystr))
mystr.count(“1”) - replace(str1, str2, count)
这个方法并不是修改本身 而是创建一个新的stri
str = str2.replace(“aa”,“bb”) - split(str , count)
根据指定的字符串 分隔成一个list 列表 - stratswith(str) 返回 bool
- endswith(str)
- upper() 转大写
- lower() 转小写
- ** title() **
把字符串中的每个单词的首字母转大写 - capitalize() 把字符串的第一个字母转大写
- partition(str)
把字符串分成三部分呢 str前 str str后 - rpartition(str) 类似 partition(str) 只不过从右边开始
- isalpha()
如果字符串的所有字符都是字母,则返回True 否则返回False - isdigit()
- isalnum()
- isspace()
- ljust(width) 将原字符串左对齐 并用空格填充长度width
- rjust()
- center()
- lstrip()
删除字符串左边的空白字符 - rstrip()
- strip()
- join(list) 将列表中的每个字符后面 加入str str.join(list)
列表的介绍以及常见操作
goals:
- 熟悉列表的格式
- 掌握列表的循环遍历
- 掌握列表的相关操作
- 列表的嵌套及应用
列表的格式
namesList = [“xiaowang” , “xiaozhang” , “xiaohua” , 111 ]
不太一样的地方是 list列表中可以存放不同的类型
- 列表有下标 namesList[0] -> “xiaowang”
遍历
- for循环遍历
for name in namesList
? print(name) - while 循环遍历
index = 0
while(index < len(namesList)):
? print(namesList[index])
? index+=1
列表的相关操作
a_list = ["xiaowang","xiaozhang","xiaohua"]
# 添加元素
# append 向尾部添加一个元素
# extend(list) 将一个集合的所有元素添加到列表中
# insert
a_list.append("xiaoqiang")
b_list = [1,2]
a_list.extend(b_list)
# append 和 extend的区别
a = [1,2]
b = [3,4]
# a.append(b) [1,2,[3,4]] 将列表b当成一个元素添加到a中
# a.extend(b) [1,2,3,4] 将列表b 中的所有元素遍历添加到a中
# insert(index , object) 在指定的index前插入元素object
a = [0,1,2]
a.insert(1,3) # [0,3,1,2]
# 修改元素
# 修改指定下标的元素的值
a[1] = "faker"
# 查找元素的方法
# in , not in , index , count
# python中查找的常用方法 in , not in 返回的结果是bool
if findName in nameList:
print("找到了这个名字")
else:
print(“没有找到”)
# index(value) count(value) 用法和字符串的这两个方法一样
# 列表删除操作
# del(index) 根据下标删除 pop()删除最后一个元素 remove(value)根据元素的值删除
# 排序方法 sort() 默认从小到大 加上参数 reverse=True 从大到小
# 反转方法 reverse() 将自身反转 list[::-1] 反转创建一个新的列表
# 列表的嵌套
schoolNames = [["北京大学","清华大学"],["南开大学","天津大学,"天津师范大学"],["浙江大学"]]
元组 Tuple
介绍
- 元组于列表类似,但是元组是不可变的, 使用圆括号
- aTuple = (“et” , 66 ,55 )
print(aTuple[0]) - 元组不可以 增删改
- index() count()
index(value, start ,end) 左开右闭
字典
字典使用花括号 key:value格式
info = {“name”:“harry”,age:20,address:“霍格沃茨”}
- 根据键访问值
info[“name”]
如果键值不存在的话会报错 KyeError : age - 如果不确定字典中是否存在某个键而又想获取其值 使用 get(key,defalutvalue)
- 修改字典的元素 info[“key”] = newValue
- 添加元素 info[“newKey”] = “value”
- 删除元素 del info[“key”]
clear() 清空
del info : 删除整个字典 变量都没了 - 常见的操作
- len(dic) 获取键值对的个数
- keys() 获取key 列表
- values() 获取value列表
- items() 获取键值元组的列表
- for key , value in dict.items():
? print(“key=%s, value=%s”%(key,value))
集合
- 特性: 元素无序, 唯一 类似于没有下标的列表
- 定义空集合 set1 = set() 圆括式 但是实际的集合使用的是花括号 set1 = {1,2,3}
- 添加元素 add() update
add(1)
update(“abcd”) 把要传的元素拆分,作为个体传到集合中 - 删除元素 remove pop discard
remove(22) 删除值如果不存在的话会报错
pop 随即删除
discard(value) 删除元素如果元素存在的话直接删除 如果元素不存在的话 不做任何操作 - 交集 & 并集 |
set1 = {1,2,3,4}
set2 = {3,4,5,6}
set1 & set2 # {3,4}
set1 | set2 #{1,2,3,4,5,6,}