字符串

goals: 1. 掌握下标以及切片操作

  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:

  1. 熟悉列表的格式
  2. 掌握列表的循环遍历
  3. 掌握列表的相关操作
  4. 列表的嵌套及应用

列表的格式

namesList = [“xiaowang” , “xiaozhang” , “xiaohua” , 111 ]

不太一样的地方是 list列表中可以存放不同的类型

  1. 列表有下标 namesList[0] -> “xiaowang”

遍历

  1. for循环遍历
    for name in namesList
    ? print(name)
  2. 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

介绍

  1. 元组于列表类似,但是元组是不可变的, 使用圆括号
  2. aTuple = (“et” , 66 ,55 )
    print(aTuple[0])
  3. 元组不可以 增删改
  4. index() count()
    index(value, start ,end) 左开右闭

字典

字典使用花括号 key:value格式

info = {“name”:“harry”,age:20,address:“霍格沃茨”}

  1. 根据键访问值
    info[“name”]
    如果键值不存在的话会报错 KyeError : age
  2. 如果不确定字典中是否存在某个键而又想获取其值 使用 get(key,defalutvalue)
  3. 修改字典的元素 info[“key”] = newValue
  4. 添加元素 info[“newKey”] = “value”
  5. 删除元素 del info[“key”]
    clear() 清空
    del info : 删除整个字典 变量都没了
  6. 常见的操作
  1. len(dic) 获取键值对的个数
  2. keys() 获取key 列表
  3. values() 获取value列表
  4. items() 获取键值元组的列表
  5. for key , value in dict.items():
    ? print(“key=%s, value=%s”%(key,value))

集合

  1. 特性: 元素无序, 唯一 类似于没有下标的列表
  2. 定义空集合 set1 = set() 圆括式 但是实际的集合使用的是花括号 set1 = {1,2,3}
  3. 添加元素 add() update
    add(1)
    update(“abcd”) 把要传的元素拆分,作为个体传到集合中
  4. 删除元素 remove pop discard
    remove(22) 删除值如果不存在的话会报错
    pop 随即删除
    discard(value) 删除元素如果元素存在的话直接删除 如果元素不存在的话 不做任何操作
  5. 交集 & 并集 |

set1 = {1,2,3,4}

set2 = {3,4,5,6}

set1 & set2 # {3,4}

set1 | set2 #{1,2,3,4,5,6,}

pythonlist 字符串单个取值 python取列表中的字符串_字符串

pythonlist 字符串单个取值 python取列表中的字符串_bc_02