python 基础(二)

一、List 列表

概述: 列表是python 使用最频繁的一种数据类型

格式:

  列表是由 [ ] 里面可以存储不同类型的值 称之为列表

取值方式: 和字符串一样

  列表[头下标:尾下标:步长]

实例:

myList = ['a','b',1,2]
print(myList) #原样输出
print(type(myList)) #<class 'list'>
#取值
print(myList[2])
print(myList[-2])
#头下标 和尾下标一起使用
print(myList[0:2])  #ab
#不给头下标和尾下标
print(myList[:])
#只给头下标  不给尾下标
print(myList[0:]) #['a', 'b', 1, 2]
#只给尾下标 不给 头下标
print(myList[:3])    #['a', 'b', 1]
#步长
print(myList[::2])
#列表 倒着输出
print(myList[::-1])
 

(1) 列表的修改和删除

  列表中的索引所应的值 可以被修改和删除 字符串索引对应的值 不可以修改和删除 但是取值方式都一样

实例:

#试一下字符串的
myStr = 'abc'
del myStr[0] #字符串索引所对应的值 不允许修改 和 删除
myList = ['张三',18,'写代码']
# myList = [18,'写代码']
# myList = [18]
print(myList[0])
myList[0] = '李四' #可以修改索引所对应的值
del myList[0]  #列表中索引所对应的值可以删除
#删除张三和18  错误的写法
del myList[0],myList[1]  #因为在删除 索引对应的值0的以后 整个列表的值的索引 会向前发生移位
#相当于 
del myList[0]
del myList[1]
#正确的写法
del myList[0]
del myList[0]
del myList[0],myList[0]
myList[0:2] = '李四' #李四为俩值
myList[0:3] = '李四' #李四为俩值  第三个值 被去除掉
myList[0:2] = '李四五' #['李', '四', '五', '写代码']
myList[0:2] = [] #删除 索引0:2 的值
myList[0:2] = ['a'] #删除 索引0:2 的值
print(myList)
 

 

(2) 列表的+和*的使用

* 作为 重复

+ 作为链接

实例:

myList = ['a','b','c']
myList1 = ['a']
print(myList*2) #重复当前列表n遍
print(myList1+myList) #字符串的链接 
 

(3) 多维列表

定义方式:

myList1 = ['a','b','c']
myList2 = ['d','e','f']
myList3 = [myList1,myList2]
myList4 = [['a','b','c'],['d','e','f']]
 

取值方式:

print(myList3[1][2]) #f
print(myList3[1]) #取出索引1对应的列表
print(myList3[0][1:])#bc
 

 

(4) 列表中常用的函数

函数名函数说明
len() 计算长度
myList.count(x) 统计列表中某个值 重复的次数
myList.append(x) 向列表中追加值(一个值)
myList.extend(t) 像列表中追加多个值
myList.index() 找出列表中第一个匹配值的 索引
myList.insert(i,x) 在某个位置 插入值
myList.pop() 弹出最后 一个值 并返回
myList.remove(x) 移除列表中的第一个值的匹配项
myList.reverse() 列表反转
myList.sort() 列表排序
myList.clear() 清空列表
myList.copy() 列表的拷贝 浅拷贝
copy.copy(x) 同上 浅拷贝
copy.deepcopy(x) 深拷贝 拷贝多层

拷贝的例子

浅拷贝例子
newList = myList.copy()
myList[0] = '张三'
print(newList)
print(myList)
import copy
newList3 = [['张三','格言','男:昆? 哦'],['李四','格言','答:帘 否']]
# newList4 = newList3.copy()
# newList4 = copy.copy(newList3) #等同于上面的拷贝
newList4 = copy.deepcopy(newList3) #深拷贝   复制多层
newList3[0][2] = '人生就像打麻将 不是点炮就是自摸'
print(newList4)
print(newList3)
 

 

二、Tuple 元组

概述:元组的定义和列表几乎相同

定义: 使用小括号 ()来定义,里面可以存储不同类型的值

Tup = (1,)

相同点:

元组的取值 和 列表,字符串 相同

使用方面和 字符串一样

不同点:
  1. 值不能修改

  2. 值不能删除

  3. 在定义元组中值的时候 如果元组中只有一个只 则当前的类型为 值的类型的本身 需要添加逗号,此刻才为元组类型

实例

多维元组

myTup1 = ('a','b','c')
myTup2 = ('d','e','f')
myTup3 = (myTup1,myTup2)
print(myTup3)
print(myTup3[0][0]) #a
 

 

三、Set 集合

集合 是一个无序 不重复的元素的序列

基本功能: 进行成员关系 测试 和 去除重复的元素

格式:

使用{}或者 set()来创建 集合

集合的实例:

差集
print(Set1 - Set2) #求set1 和 set2的差集 注意比较顺序
print(Set2 - Set1) #求set2 和 set1的差集 注意比较顺序
并集
print(Set1 | Set2) #不需要注意比较顺序   最终的结果为 去除重复的值 并将俩个结合 合并
print(Set2 | Set1)
交集
print(Set1 & Set2) #a
俩个集合中 不同时存在的元素  去除交集后的元素
print(Set1 ^ Set2)
 

去除重复元素的例子

Tuple = (100,30,20,30,40,100) #去除重复的值 最终变成列表
print(max(list(set(Tuple)))) #去除重复后 获取最大的值
print(min(list(set(Tuple)))) #去除重复后 获取最小的值
 

注意:

  1. 创建一个空集合 使用数据类型转换函数 set() 而不是使用{} 因为创建空字典 使用{}

四、Dictionary 字典

语法格式:

{} 创建一个空字典

{key:value...} #以键值对组成

(1) 创建字典

 
Dict = {'name':'凤姐','age':18,'爱好':"写代码加班工作"}
 

(2) 字典得取值

print(Dict['name'])  #取出key为 name得值
print(Dict['xx'])  #KeyError  不存在得key
 

(3) 字典值得修改

Dict['name'] = '范冰冰'  #如果出现了 同名的key  叫做值的修改
 

(4) 字典值得添加

 
Dict['message'] = '以后在 看到有日本的电影的时候 将自觉调节音量的习惯 得改改了' #如果给一个不存在得 key赋值  叫做添加值  默认添加倒最后
 

(5) 字典得值得删除

del Dict['name'],Dict['age']  #删除值
 

 

(6) 字典常用函数

myDict.函数名()

函数名函数说明
items() 返回可迭代得序列
keys() 获取所有得key
values() 获取所有得值
dict2.update(dict1) 将字典dict1更新倒dict2里面
pop(key) 通过给定key 移除对应得值并返回
popitem() 移除最后一对键值对 并返回
copy() 浅拷贝
deepcopy() 深拷贝
clear() 清空字典
get(key【,default】) 获取字典中得值 如果key不存在且没有给定default值 则返回None

字典得深拷贝

 
import copy
Dict = {'a':{'b':'b','c':'c'}}
Dict2 = copy.copy(Dict)
Dict2 = copy.deepcopy(Dict)
Dict['a']['c'] = 'd'
print(Dict)
print(Dict2)
 

注意:

  1. 再定义字典得时候 不应该存在重复得key 因为会将前面得覆盖 并且 key是取值得唯一条件

  2. 如果获取一个不存在得key得时候 会报错 KeyError

  3. 字典是一个映射类型 ,他的元素是键值对

  4. 字典得key 为不可变类型 且不能重复

  5. 字典和字符串...得区别 字典得元素 是通过key存取 而不是通过偏移量来存取得

 

五、python类型转换函数

函数名函数说明
int(x) 将x转换为整形
float(x) 转换为 浮点型
str(x) 将x转换为字符串
eval(x) ['i:vl] 用来计算字符串中得有效表达式
tuple(s) 将序列s转换为元组
list(s) 将序列s转换为列表
bool() 将值转换为bool类型
set(s) 将序列转换为集合
dict() 将序列转换为字典 注意:序列里面得值必须为成对

 

posted @ 2018-09-27 19:17  gugubeng  阅读(217)  评论(0编辑  收藏  举报