Python趣事-5-集合

本文介绍了Python中的集合概念,包括list、tuple、dir和set四种类型,以及它们的特点和常用方法。通过实例展示了如何操作集合,如插入、删除元素,以及创建和处理集合的工具函数。还探讨了Python中逗号导致的特殊tuple行为。
摘要由CSDN通过智能技术生成

集合简单介绍

在python语言中,集合就是多个数据的组合,不一定要是一种类型哈,比如说在Java语言中,一个集合中的类型就必须是同一类型

有四种常用的集合:

list:列表,可以重复
tuple:固定列表,就是不能修改其中的元素
dir:键值对类型集合
set:只有键值的dir(即只有key,没有value)

常用方法:

(x表示一个值,i表示一个序数,[]表示可选参数)

list

append( [x] ):插入x值
insert( [i] , x ) :在序号为i的位置插入x
extends(iterable) 可迭代对象,一次性添加多个
pop( [i] ) 移除序号为i位置的元素
remove( x ) 移除第一个元素值为x的元素
index( x ) 返回元素值为x的序号
count( x ) 返回元素值x在列表中出现的次数
clear() 清空整个列表
sort() 排序
reverse() 逆序
copy() 复制

tuple(不能对其中的元素进行修改,所以就不能进行添加、删除、修改)

index( x ) 返回元素值为x的序号
count( x ) 返回元素值x在列表中出现的次数

dir 和 set

def main2():
    di = {'name':'simfg'}

    # 添加
    di['age'] = 12
    di.setdefault('hobby','eating')

    print(di)
    print("--------")

    # 修改
    di.update(age=20)

    print(di)
    print("--------")

    # 删除
    del di['hobby']

    print(di)
    print("--------")

    # set(就是dir的key值,会自动去重)
    basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
    print(basket)

if __name__ == '__main__':
    main2()

这里写图片描述

tuple ,不可变的list

先看看一段有趣的代码

def main():
    print(len('hello'))

    a = 'hello',

    print(len(a))

你猜这一函数运行是打印出什么?

这里写图片描述

你有没有对这个结果感到疑惑呢?

值得注意的是a = 'hello',结尾有一个逗号,这就意味着a是一个指含有一个元素tuple

再来一段

def main():
    t = 12345, 54321, 'hello!'

    print(t)

    x,y,z = t

    print(x)
    print(y)
    print(z)

    # 判断x这个参数变量的值是不是存在与t这个tuple中
    print(x in t)

t 是一个tuple哈

x,y,z = t t是一个tuple,将每一个元素分别赋予左侧的参数,注意一定要保证参数个数个tuple长度一样

这里写图片描述

花样 dir/set

创建一个dir或set

def main():
    a = {x for x in 'abracadabra' if x not in 'abc'}
    print(a)

    b = dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
    print(b)

    c = dict(sape=4139, guido=4127, jack=4098)
    print(c)

第一种方式,就是得到一个在一个字符串中得到所有字母除abc之外的set

第二种和第三种运行下你就明白了

这里写图片描述

处理集合的函数工具

def main():
    # i表示序号
    for i, v in enumerate(['tic', 'tac', 'toe']):
        print(i, v)

    print('-------')

    # 获取反转的list
    for i in reversed(range(1, 10, 2)):
        print(i)

    print('-------')

    # 集合排序,默认是字母表
    for i in sorted('acb'):
        print(i)

    print('-------')


    ab = [1,10,100]
    bc = [2,20,200]
    cd = [3,30,300]

    # 多个集合组合
    for z in zip(ab,bc,cd):
        print(z)

    print('-------')

    # 单个集合重组
    df = [
        [1,2,3],
        [4,5,6],
        [7,8,9]
    ]
    for z in zip(*df):
        print(z)

这里写图片描述


扫描左侧二维码,关注个人公众号:SimFG,让我们一起探索世界吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值