Python学习笔记——数据类型list、tuple、dict、set

本文深入解析Python中的list、tuple、dict和set数据结构,详细介绍了它们的定义、操作、特性及应用场景,帮助读者掌握Python数据处理核心技能。

内容整理于廖雪峰官网和菜鸟教程

list可变用[] , tuple不可变用()
dict={} set()均不可放入可变元素

list和tuple
list
  • 定义
    listA=[‘AAA’,‘bbb’,‘ccc’]
    list的元素可以是另一个list
    listB=[‘ddd’,listA]
    listC=[‘ddd’,[‘eee’,‘fff’]]
    len(listC)=2 len计算元素数
    list的元素可以是不同类型
    listD=[‘ggg’,123,Ture]
  • 索引
    索引从0开始,越界报错
    listA[0]=‘AAA’
    listA[1]='bbb’正数第一个
    listA[-1]='ccc’倒数第一个
    可以作为二维数组来索引
    listC=[‘ddd’,[‘eee’,‘fff’]]
    listC[1][0]=‘eee’
  • append将元素插入末尾
    listA.append(‘123’)
    append将list类型元素插入list时,插入list作为一个元素
>>>istA=['AAA','bbb','ccc']
>>>e=['abc','def'] 
>>>listA.append(e) 
>>>listA
listA=['AAA','bbb',['abc','def']]
  • extend批量增加,多个元素需要作为list类型的参数引用
    listA.extend(‘abc’)——listA=[‘AAA’,‘bbb’,‘ccc’,‘a’,‘b’,‘c’]
    extend将list类型插入list时,list中的元素被拆开
>>>istA=['AAA','bbb','ccc']
>>>e=['abc','def'] 
>>>listA.extend(e) 
>>>listA
listA=['AAA','bbb','ccc','abc','def']
  • pop删除最后一个元素
    listA.pop()
    listA.pop(i) #i是索引位置
  • remove删除指定元素
    listA.remove(‘AAA’)
  • insert在指定位置插入
    list名称.insert(位置索引,元素)
    listA.insert(1,‘ggg’)
  • 元素赋值
    listA[0]=‘hahaha’
tuple
  • 定义
    一旦初始化就不能更改的有序列表,指向不变,但如果指向list,list内的元素可以变
    tupleA=(‘aaa’,‘bbb’,‘ccc’)
    只有一个元素的tuple需要加,tupleB=(1,)
    可以定义空tuple,tupleC=()
  • 删除
    tuple不允许删除元素值,可以用del tupleA删除整个tuple
  • 操作
    可以进行索引、切片、迭代、+++连接、*复制
  • 函数
    cmp(tuple1,tuple2) python3没有cmp函数,需要引入operator模块
    len(tuple)
    max(tuple)
    min(tuple)
    tuple(seq)将list生成tuple
dict和set

dict={} set()均不可放入可变元素

dict
  • 描述
    字典,其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度

和list比较,dict使用hash算法,有以下几个特点:查找和插入的速度极快,不会随着key的增加而变慢;需要占用大量的内存,内存浪费多。而list相反:查找和插入的时间随着元素的增加而增加;占用空间小,浪费内存很少。

  • 定义
    d = {key1 : value1, key2 : value2 }
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
  • 插入key-value
    d[‘Adam’] = 67
    value可以是任何数据类型,但key必须是不可变的。每个key的value是唯一的,对一个key多次放入value,只保留最后一个

  • 删除
    d.pop(‘Michael’),删除key对应value也删除
    del d,删除整个dict

  • 判断key存在

  1. in判断
    ‘Bob’ in d
  2. get() 判断,不存在则返回None(Python交互不显示)(括号内无第二参数)或者第二参数的指定值
    d.get(‘Michael’)
    d.get(‘Wayne’,-1)
set

一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key

  • 定义
    创建set需要以list作为输入集合,输入list中的重复元素将自动被过滤,可以使用{}或者set()函数创建集合。 创建空集必须set(),{}会创建一个新字典。
s1=set('apple')
print(s1)
s2=set(('apple'))
print(s2)
s3=set(('apple',))#采取这种方式创建单一元素集合
print(s3)
{'p', 'a', 'l', 'e'}
{'p', 'a', 'l', 'e'}
{'apple'}
  • 判断元素是否存在
    x in s 存在返回True不存在返回False
  • 添加
    s.add(4)
    s.update(x) 参数可以是list\dict\tuple
  • 删除
    s.remove() 没有该元素则报错
    s.discard() 元素不存在也不会报错
    s.pop() 脚本模式随机删除,交互模式删除排序后集合第一个元素
  • 清空set
    s.clear()
  • 交集、并集
    set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集s1&s2、并集s1 | s2 等操作
>>> a = set('abracadabra') 
>>> b = set('alacazam')
>>> a {'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含而集合b中不包含的元素 
{'r', 'd', 'b'} 
>>> a | b # 集合a或b中包含的所有元素 
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'} 
>>> a & b # 集合a和b中都包含了的元素 
{'a', 'c'} 
>>> a ^ b # 不同时包含于a和b的元素 
{'r', 'd', 'b', 'm', 'z', 'l'}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值