我们继续接着上一次没讲完的数据类型,来学习列表,元组和字典,以及一些常用字符串的操作方法。

一、列表
  列表是python中最基本的数据结构。列表中的每个元素都有一个索引(也叫下标,角标,编号),第一个是0,第二个是1,以此类推,最后一个元素下标是-1。列表可以进行索引,切片,加乘,增,删,改,查(元组也可以)。它可以作为一个方括号内的逗号分隔值出现。
stus = ['张','赵','钱','孙']    #下标从0开始,可以根据下标来取值最后一个元素下标是-1
print(atus[-1])

列表的一些操作:
cities = []
1. 增
cityies.append('北京')  #在列表末尾增加一个元素
cityies.insert(0,'上海')    #在指定位置新增元素,不能为负数
print(citys)
2. 删
cities.pop(-1)  #删除指定位置的元素
cities.remove('北京') #删除指定的元素
cities.clear()  #清空list里面的元素
del cities[-1]  #删除指定位置的元素
3. 修改
cities[1]='南京'  #只能修改已有的下标,不然报错,下标越界
4. 查
print(cities[0])    #指定位置的
print(cities.index('广州'))   #获取元素的下标
print(cities.count('广州'))   #查看元素在list里面出现的次数
print(cities.reverse()) #反转list

nums = [2,9,4,78,12,524,354,21,6]
nums.sort()   #排序,升序
nums.sort(reverse=Ture) #排序,降序
print(nums)
cities2 = ['深圳','厦门','成都']
print(cities2+cities)   #合并list
print(cities*2) #复制list


多维数组--数组中嵌套数组
words = ['view','code','tools',['price','num',198,['hello','ok']]]  #三维数组

5. 切片是list取值的一种方式
nums = ['koukou','peipei','lvlv','weiwei']
print(nums[1:2])    #顾头不顾尾,不包含后面下标的值
print(nums[1:]) #从某个下标开始取到末尾结束,末尾下标可以不写
print(nums[:2]) #从头开始取,到后面某个下表结束,那么开头的下表可以不写
print(nums[:])  #取list中所有值
lis = list(range(1,20))#生成1-19的
print(lis[::-1])  #步长,各几个取一次,默认为1,可用于反转list
# 用lis.reverse()反转会改变list的值,用步长反转产生了一个新的list,不会改变原来list的值
# 如果步长为正数,从左往右开始取值
# 如果步长为负数,从右往左开始取值
# 切片操作同样适用于字符串
info = '你好,今天天气很好'
print(info[:6:-1])  #-1倒序,开头没有取值,所以默认从右往左取值


# 可变变量
  # 里面的元素可以修改
# list,tuple
# 不可变变量
#     里面的值不可修改
# string


6. list循环
lists = ['口口','蔻蔻','佩佩','培培','威武',[1,2,3,4]]
for name in lists:
    if type(name)==list:
        for i in name:  # for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素
            print(i)
    print(neme)

二、 元组,元组也是一个list,但元组里面的元素无法修改,如果元组里面只有一个元素,元素后面必须加一个逗号

t = (1,2)
print(type(t))
循环切片:
print(t[:1])
下标取值:
for i in t:
    print(t)
print(t)


三、 字典
字典是另一种可变容器模型,且可储存任意类型对象。字典的每个键值对key匹配一个或者多个value,用:分割,每个键值对之间用逗号分割,整个字典包括在{}中。字典是无序的。字典具有取数据方便,速度快的特点
字典的一些操作:
infos = {'neme':'11','name':'22','koukou':'33','rongrong':'荣荣'}
1. 查
print(infos.get('koukou'))#取不到这个key的话就是None
print(infos.get('koukou',110))#取不到这个key的话就默认110
print(infos['koukou'])#取不到这个key的话就报错

2. 增
infos['phone']=123456987    #增加一个key
infos.setdefault('小金库','2000w') #如果key存在,不会修改key值
infos['koukou']='口口'# 修改
print(infos)
# 字典是无序的

3. 删除
infos.pop('name')#指定key来删除
infos.popitem()#随机删除一个key
del infos['phone']#指定key来删除
infos.clear()#清空字典
print(infos)
4.修改
infos['name']='口口'
4. 常用方法
print(infos.values())#获取到字典所有的value
print(infos.keys())#获取到字典所有的key
print(infos.items())
# 直接循环一个字典的话,循环的是字典的key
for p in people:
    print(p)
for k,v in people.items():#循环的时候同时取key和value
    print(k,'=======>',v)

三、 常用字符串方法
a = '    字  符  串   \n'
# c = a.strip()   #默认去掉字符串两边的空格和换行符
c = a.lstrip()   #默认去掉字符串左边的空格和换行符
c = a.rstrip()   #默认去掉字符串右边的空格和换行符
print('c....',c)
print('a...',a)

words = 'http://www.nnzhp.cn day is a wonderfulday'
print(words.strip('day'))#如果strip方法指定一个值得话,那么会去掉这两个值
print(words.count('a'))#统计出现的次数
print(words.index('z'))#找下标,如果元素找不到的话会报错
print(words.find('z'))#找下标,如果元素找不到的话会返回-1
print(words.replace('day','DAY')) #替换字符串
print(words.isdigit())#判断字符串是否为纯数字
print(words.startswith('http'))#判断是否以某个字符串开头
print(words.endswith('.jpg'))#判断是否以某个字符串结尾
print(words.upper())#变成大写的
print(words.lower())#变成小写的

username = 'abcdef'
print(username.isalpha())#判断字符串是否全为字母
print(username.isalnum())#判断字符串是包含字母和数字,只要有字幕或者有数字就返回ture