列表,元组,字典的常规操作及内置方法

列表类型(list)

# ls=[1,2,3]        #简化定义变量的方式称为语法糖/笑笑语法
# ls=list([1,2,3])  #本质
# print(ls)


#列表的常用操作
1.索引取值:列表名[index]
# s1 = ['w','q','e']
# print(s1[1])

2.列表运算(列表元素同类型)

3.list的长度
# s3 = [3, 4, 1, 2, 5]
  print(len(s3))

4.切片:[start_index:end_index:step]
# s4 = [3, 4, 1, 2, 5]
# new_s4 = s4[::-1]          # 反向取值
# print(new_s4)
# new_s4 = s4[1:4:]
# print(new_s4)
# new_s4 = s4[-2:-5:-1]
# print(new_s4)

5.成员运算:in
# s5 = [3, 4, '1', 2, 5]
# print('1' in s5)     结果为True
# print(1 in s5)       结果为False
# print(5 not in s5)

6.循环(pycharm: ctrl+shift+r替换功能)
# for v in s5:
#     print(v, type(v))
#
# # 只打印数字类型的数据
# for v in s5:
#     if isinstance(v, int):
#         print(v, end=' ')


列表的操作
1.列表的增删改查
#ls = ['w','q',3]
 查
# print(ls[1])

 增
# ls.append('r')          # 列表末尾增加字符串
# print(ls)
# ls.insert(1,'w')        # 添加至索引位置的前一个位置
# print(ls)
# ls.insert(len(ls),'w')  # 用insert实现末尾增
# print(ls)

 改
# ls[1] = 'r'
# print(ls)

 删
# ls.remove('q')
# print(ls)

# ls.pop()          # 默认从末尾开始删
# print(ls)
# ls.pop(1)
# print(ls)         # 指定位置删

了解
# del ls[2]         #指定位置删
# print(ls)
#
# ls.clear()        #清空
# print(ls)        

# 其他方法
#  排序:针对于同类型
# ls1 = [3,1,2]
# ls1.sort()               #默认正向排序
# print(ls1)
# ls1.sort(reverse=True)   #正向排序结果上反转,形成倒序
# print(ls1)
#
# ## 翻转
# ls1.reverse()            #按存储的顺序进行翻转
# print(ls1)

## 计算值的个数:列表中可以存放重复数据
ls2 = [1,2,3,3,2,1]
#print(ls2.count(1))        #对象1存在的次数

## 整体增加:添加至末尾
# ls2.extend('123')         # 增加字典时,只取key值
# print(ls2)
## 目标的索引位置,可以规定查找区间
ind = ls2.index(1,3,6)      #index(self,start_with , end_with)
print(ind)

元组类型的操作及内置方法

# 元组类型
# 定义:元组内部可存所有类型数据(tuple)
# t1 =()表示空元组
#当元组只含有一个元素时,必须还其元素后添加逗号,如:tuple1=(1,)
#
# 常规操作
# 1.索引取值
# print(t1[2])
# #
# 2.拼接
print((1,2)+(2,3))
# 3.长度
print(len(t1))
# 4.切片
print(t1[::]) [start_with:end_with:step]
# 5.成员运算
print(2 in t1) # 判断2是否在元组t1中
# # 6.for循环
for v in t1 :
    print(v,end=" ")
#
# 方法
# 1.计数
# print(t1.count(0))      # 对象0在元组中出现的次数
# 2.索引位置
# print(t1.index(0,1,4))  # 对象0在区间1到4第一次出现的位置


# 元组不可变类型分析(只能读取无法存入)
t1 = (10,'abc',[100,200])       # t1指向的元组地址中存放的值一旦确定,不能再被修改,长度也不能改变

字典类型的操作及内置方法

# 容器(集合):存放多个值的变量
# 单列容器:list 、tuple
# 双列容器(map):只有dict(python中)

# 字典的定义
# dic = {'a':1,'b':2}
# 以key:value键值对方式
# key是取value的唯一依据,key一旦被确定,就需要唯一确定(不能被改变)
# value可以是任何数据类型
# key要确保唯一性,不能重复,值可以重复,并且可以改变=》字典为可变类型

#案例
import random
lis=['lino','koko','popo','sena']
name_dict={'lino':0,'koko':0,'popo':0,'sena':0}
for i in range(100):
    lucky_name=lis[random.randint(0,3)]
    name_dict[lucky_name]+=1
print(name_dict)

# 空字典
#d1 =dict()
#d2 ={}
# 用map映射创建字典
#d3 = dict({'a': 1, 'b': 1})
# 用关键字赋值方式
#d4 =dict(name='wq',age=25)
# 创建有多个key值采用默认值的方式,默认值不写默认None,也可以自定义
#d5 = {}.fromkeys('abc', 0)    
#print(d5)                #结果为{'a': 0, 'b': 0, 'c': 0}

#d6 = {}.fromkeys({'a':1,'b':2}, 0)
#print(d6)                #结果为{'a': 0, 'b': 0}

#dic = dict.fromkeys(['name','weight','height'],None)
#print(dic)               #结果为{'name': None, 'weight': None, 'height': None}

# 字典的增删改查
# 增 key已存在就是修改值,不存在就新增值
#d3 =dict {'a':1,'b':2}
#dict['c'] = 3

# 查
# dic={'a':1,'b':2}
# print(dic['c'])   #只能查已有key值,无key则报错
# 有默认值的查询,有key取出对应value,没有就返回默认值(None),默认值也可以自定义
# print(dic.get('d'),'默认值')

# 删
#dic.clear()
#print(dic)
# pop(k)删除指定key的value并返回删除的value
# res = dic.pop('a')
# print(res)
# popitem从dic末尾删除,返还(key,value)形成的元组
# res =dic.popitem()
# print(res)

# 其他方法
# update(更新):a有值被覆盖,c无对应覆盖值,顺带下来,b为新增值,增加并赋值
dic ={'a':1,'c':2}
d ={'a':10,'b':20}
dic.update(d)
print(dic)           # {'a': 10, 'c': 2, 'b': 20}

# 带默认值的新增:新增key,key已有,无动于衷,无key,值就是第二个参数
# dic.setdefault('z',100)
# print(dic)

# 字典的循环
# 1.直接循环,就是循环得到key
# dic ={'a':1,'c':2}
# for k in dic:
#     print(k)

name_dict1={'lino':1,'koko':2,'popo':3,'sena':4}
print(name_dict1.keys())      #  dict_keys(['lino', 'koko', 'popo', 'sena'])
print(name_dict1.values())    #  dict_values([1, 2, 3, 4])
print(name_dict1.items())     #  dict_items([('lino', 1), ('koko', 2),                                                        ('popo', 3), ('sena', 4)])

# 2.循环keys
# print(dic.keys())
# for k in dic.keys():
#     print(k)

# 同时循环key和value (key, value)
print(dic.items())
# a, b = (1, 2)
# print(a, b)
# for res in dic.items():
#     print(res)
# 重点
for k, v in dic.items():
    print(k, v)
posted @ 2019-05-08 19:44  wanjiang  阅读(246)  评论(0编辑  收藏  举报