Python听课笔记---内建结构list,tuple,set,dict

**

一、列表list

**

  1. append() 在末尾插入一个内容
  2. insert(index,data) 指定位置插入
    如:a.insert(3,11)在第四个位置插入11
  3. del() 删除
  4. pop()拿出最后一个元素,经常有赋值操作如:a=x.pop()
  5. remove()在列表中删除指定值的元素,列表中必须有这个值,否则会报错,应使用try或先进行判断
  6. clear()清空,但列表的地址不变也就是说仍存在空间
  7. reverse()翻转,列表地址不变
  8. extend()扩展列表,a.attend(b)把b加到a上
  9. count()查找列表中指定元素的个数
  10. copy()浅拷贝传值不传址且只传一层即二层列表传址
    【注】list操作中直接赋值相当于传址操作

**

二、元组-tuple(不可更改)

**

创建:

  1. t=()
    print(type(t))
  2. t = 1,2,3,4
    print(type(t))
  3. l = [1,2,3,4]
    t = tuple(l)
    list所有的特性,除了可以修改,元组都有
    索引,分片,序相加,相乘,成员操作一模一样
    关于元组的函数
  4. len()获取长度
  5. min()max()最大最小值
  6. 元组变量交换法
    a=1
    b=2
    a,b=b,a
    print(a,b)
    结果:2 1

**

三、集合-set

**
一堆确定的无序的唯一的数据,集合中每一个数据成为一个元素
定义:s=set() s={1,2,3,4,5}
l = [1,2,3,5,5,5,5]
s = set(l)
特征:集合内数据无序,无法索引和分片
集合内数据元素具有唯一性,不能有重复数据
内部只能放可哈希的数据
集合序列操作: in , not in
集合的遍历操作:for i in s:
##带有元组的集合遍历
s = {(1,2,3),(‘i’,‘love’,‘you’),(4,5,6)}
for k,m,n in s:
print(k," “,m,” ",n)
for k in s:
print(k)
结果:4 5 6
i love you
1 2 3
(4, 5, 6)
(‘i’, ‘love’, ‘you’)
(1, 2, 3)
集合的内涵:
##普通集合的内涵,以下初始化后自动过滤掉重复的元素
s = {1,1,222,3,6,8,3}
print(s)
ss = {i for i in s}
print(ss)
结果:
{1, 3, 6, 8, 222}
{1, 3, 6, 8, 222}
##带条件的集合内涵
s = {1,2,333,453,2,1,776}
ss = {i for i in s if i%2 == 0}
print(ss)
结果:{776, 2}
##多循环的集合内涵
s1 = {1,2,3,4}
s2 = {“i”,“love”,“you”}
s = {m*n for m in s2 for n in s1 if n==2}
print(s)
结果:{‘youyou’, ‘lovelove’, ‘ii’}
关于集合的函数:
len(),max(),min()跟其他函数基本一致

  1. add()向集合内添加元素,向末尾添加
  2. clear清空,原地清空
  3. copy()函数,浅拷贝s1=s2.copy()
  4. remove()移除指定的值,直接改变原有值,如果要删除的值不存在会报错
  5. discard()移除集合中指定值,根remove()一样,但是元素不存在不会报错
    6.pop()随机移除一个元素
  6. intersection()交集
  7. difference()差集
  8. union()并集
  9. issubset()检查一个集合是否为另一个集合的子集
  10. issuperset()检查一个集合是否为另一个集合的超集
    s1 = {1,2,3,4,5}
    s2 = {4,5,6,7,8}
    s_1 = s1.intersection(s2)
    print(s_1)
    s_2 = s1.difference(s2)
    print(s_2)
    s_3 = s1.union(s2)
    print(s_3)
    s_4 = s1.issubset(s2)
    print(s_4)
    结果:{4, 5}
    {1, 2, 3}
    {1, 2, 3, 4, 5, 6, 7, 8}
    False
  11. frozenset冰冻集合,冰冻就是不可以任何修改的集合
    ##创建
    s = frozenset()

**

四、dict字典

**
##创建空字典 d = {} 或d = dict{}
##创建有值的字典,每一组用冒号分开,每一对键值对用逗号隔开
d = {“one”:1,“two”:2,“three”:3}
##用元组创建一个字典
d=dict([(“one”,1),(“two”,2),(“three”,3)])
print(d)
结果:{‘one’: 1, ‘two’: 2, ‘three’: 3}
##用关键字创建一个字典
d=dict(one=1,two=2,three=3)
print(d)
结果:{‘one’: 1, ‘two’: 2, ‘three’: 3}
##字典的特征
##字典是序列类型,但是是无序序列,所以没有分片和索引
##字典中的数据是每一个键值对组成,即没有kv对
##key:必须是可哈希的值,如int,char,float,但是list,set,dict不行
##value:任何值
##常见操作
##访问数据
d={“one”:1,“two”:2,“three”:3}
print(d[“one”])
d={“one”:1,“two”:2,“three”:3}
d[“one”]=“一”##修改
print(d)
del d[“one”]##删除
print(d)
结果:1
{‘one’: ‘一’, ‘two’: 2, ‘three’: 3}
{‘two’: 2, ‘three’: 3}
##成员检测in , not in
##检测的不是值,也不是键值对,是键
d={“one”:1,“two”:2,“three”:3}
if 2 in d:
print(“值”)
if “two” in d:
print(“键”)
if (“two”,2) in d:
print(“键值对”)
结果:键
##遍历
d={“one”:1,“two”:2,“three”:3}
for k in d.keys():
print(k, d[k])
结果:one 1
two 2
three 3
##字典生成式
d={“one”:1,“two”:2,“three”:3}
dd={k:v for k,v in d.items() if v%2==0}
print(dd)
结果:{‘two’: 2}
##str(字典)返回字典的字符串格式
##items返回字典对应组成的元组格式
d={“one”:1,“two”:2,“three”:3}
i=d.items()
print(type(i))
print(i)
结果:<class ‘dict_items’>
dict_items([(‘one’, 1), (‘two’, 2), (‘three’, 3)])
##get:根据指定键返回相应的值,好处是可以返回默认值
d={“one”:1,“two”:2,“three”:3}
print(d.get(“aaa”))##会输出none,并且默认值是可设置的如print(d.get(“aaa”,100))此时会返回100
print(d[“aaa”])##会报错
##fromkeys 使用指定的序列做为键,使用一个值作为字典的所有的键的值
s=[“一”,“二”,“三”]
d=dict.fromkeys(s,1)
print(d)
结果:{‘一’: 1, ‘二’: 1, ‘三’: 1}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值