tuple,list,dict,set用法

python基础

复杂数据类型(数据结构)

tuple:元组,使用小括号表示,包含若干个数据元素,可以为空,数据元素的类型可以为任意类型,它是不可变对象(创建后不可改变,不能增删改除)

list:列表,使用中括号表示,包含若干个数据元素,可以为空,数据元素的类型可以为任意类型,它是可变对象,查询和插入效率很低,并且列表越长,查询和插入速度越慢,消耗内存空间小

dict:字典,使用花括号表示,包含若干个键值对(Key-Value Pair,也称为-值对)数据,Key不能重复并且必须为不可变对象,具有极快的查询和插入速度,但会消耗大量内存空间,并且会随着长度增加而增加

set:集合,使用花括号表示,和dict类似,只是不存放key,只存放value,无序且不重复

NoneType:空类型,该类型只有一个值 None

 

哲学

时间和空间,相生相克

 

切片操作(Slice Operation)

获取str,bytes,tuple,list中的部分数据元素

 

可变对象

int,float,bool,str,bytes,tuple都是不可变对象,而list,dict,set等是可变对象

 

 

常用内置函数

min:求最小值

max:求最大值

 

扩展

1.python不存在字符类型 ,都是字符串

字符可以理解为是含有一个字符的字符串

2.对变量赋值只是改变了它的指向

msg = "abcdef"#msg[2] = "d"msg = "sadfvfd"msg = (1, 2, 3)

3.遍历 将每个数据都访问一次,不重复

4.vim注释多行

ctrl + v 进入可视模式,上下移动选中想要注释的行,然后按大写的 I 键进入插入模式,输入#按esc退出即可

 

list的用法

#!/usr/bin/env python3

#-- coding: utf-8 --

s = 'dasfgdvsdgfgfa'

for j in s:

print(j,type(j))

 

list1 = [1, 2, 3, 4, 5, 'a', 'b', 'c', '小花', True]

for i in list1:

print(i,type(i)) # 常用

 

a = list1[-1]

print(a)

 

list1[3] = '小乔' # 列表赋值 注:与字符串类似,如果原有的列表被修改,就相当于一个新的列表

print(list1) # 赋值的时候,是给原有的列表赋值

b = list1[1:3] # 切片 范围取值

print(b)

c = list1[::2] # 步长

print(c)

list2 = [1, 2, 3, [4, 5, 6], [7, 8, 9]]

d = list23

print(d) #二维列表取值

 

使用range创建一个列表 **

list3 = list(range(1,20,2))

list4 = list(range(20,1,-2))

print(list3)

print(list4)

 

########ID

str1 = 'abc'

print(str1, id(str1))

str1 += 'def'

print(str1, id(str1))

list5 = [1, 2, 3, 4, 5]

print(list5, id(list5))

list5[3] = 666

print(list5, id(list5))

list6 = list5 + [9, 8, 7]

list7 = list5print(list6, id(list6))

print(list7, id(list7))

list8 = list5 * 3

print(list8, id(list8))

 

list9 = []

list9.append('111') # 列表添加元素

print(list9)

list10 = [1, 2, 3, 4, 3, 3, 3,'delete', 'remove', 'pop']

list10.remove(3) # 删除指定元素

print(list10)

list10.pop() # 通过索引删除

print(list10) # 默认删除最后一个

####修改##反转

list10.reverse()          #反转,将第一位元素与最后一位元素互换位置,第二位与倒数第二位互换依次类推

print(list10)

#####其他

list12 = [1, 2, 3, 4, 5]

L = len(list12)

print(L)

L2 = max(list12)

L3 = min(list12)

print(L2)

print(L3)

#list12.clear() # 清空列表

print(list12)

 

list12.insert(3, 666)

print(list12) #插入一个数据

list12.extend([6, 7, 8]) # 在列表末尾一次性追加多个值

print(list12)

 

#####查找

print(list12.index(2)) # 找元素所在的小标

print(list12.count(2)) #查找元素出现的次数

#####排序

list12.sort() # 列表升序

print(list12)

list12.reverse() # 列表降序

print(list12)

L = [1, 3, 5, 7, 4]

a = sorted(L, reverse = False)

b = sorted(L, reverse = True)

print(a)

print(b)

'''sort 与 sorted 的区别:

sort 修改原始列表sorted 新建一个列表

'''

 

tuple元组的用法

###########tuple#特性:不可改变

#开始定义成的样子就一直是什么样子

t = (1, 2, 3, 4, 5)

print(t, type(t))

t2 = (1,) #如果只有一个元素,只需末尾添加一个逗号

print(t2, type(t2))

#用range 创建一个元组

t3 = tuple(range(2,30))

print(t3)

for i in t:

print(i)

print(max(t3), min(t3), len(t3))

print(t3.index(4))

print(t3.count(5))

#####元组与列表相互转换,即想改变元组,可以把元组转换为list,改变后再转换回来

L = list(t3)

print(L, type(L))

t4 = tuple(L)

print(t4, type(t4))

#####排序

t5 = (1, 4, 7, 3, 2, 5, 6)

s1 = tuple(sorted(t5, reverse = True))

s2 = tuple(sorted(t5))

print(s1)

print(s2)

#元组不可变,但元组里存放的列表里的元素是可以改变的,不受元组本身的影响

t6 = (1, 2, 3, 4, 5, [1, 2, 3], [4 ,5, 6])

#a = t6[5]

#print(a, type(a))

t65 = 666

print(t6)

 

dict字典的用法

######dict:字典,通过key-value(键-值)匹配数据的存在,完全不考虑位置#key:查询所需要的关键字,在同一个字典中不允许重复,key一般来说都是使用字符串

d = {'A': 11, 'B': 22, 3: 33, 4: 44}

print(d,type(d))

d1 = d['B'] # 字典取值

d2 = d[3] #使用列表取值[ 这是放的是key ]

print(d1)

print(d2)

d2 = d.get('f') # 多用此方法取值

print(d2)

#使用列表取值,如果key没有,就会报错#使用get() 方法取值,如果 key没有 ,返回None

#赋值

d['B'] = 1111

print(d)

#删除

#d3 = d.pop('A')

#print(d)

 

#for 循环

for i in d:

print(i)

print(d[i])

for k,v in d.items():

print(k,v)

 

set集合的用法

#####set 无序的集合,没有重复的元素,可变的容器

tmp = {1, 2, 3, 'good', 3}

print(tmp, type(tmp))

#增tmp.add('love') # 如果容器中的元素已经存在,不能添加进去

print(tmp)

#改tmp.update([4, 5, 6, 'blue']) # 可以将容器中的元素放到集合中,去掉重复的元素,然后将它转换回来

print(tmp)

#删

tmp.remove('blue')

print(tmp)

#清空

#tmp.clear()

#print(tmp)

#集合和列表的转换

L = list(tmp)

print(L)

#去 重

LL = [1, 1, 1, 2, 2, 2, 3, 3, 4, 5]

set1 = set(LL)

print(set1)

sss1 = {1, 2, 3, 5, 8, 9}

sss2 = {2, 3, 4, 5, 6, 9}

print(sss1 & sss2)#与

print(sss1 | sss2) #或

print(sss1 ^ sss2) # 非

 

 

作业

1.重点掌握list,dict,set的增删改差操作

2.实现一个用于我们班的随机抽奖程序

 

 

posted @ 2019-07-19 18:08  YruiZ  阅读(266)  评论(0编辑  收藏  举报