美文网首页
数据结构/集合/元组

数据结构/集合/元组

作者: Gorden_x | 来源:发表于2017-10-20 22:19 被阅读0次

    1.集合Set
    strs=set(['jetf','wong','cnblogs'])
    nums=set(rang(10)),集合就是由序列构建的。
    特点:
    (1)副本是被忽略的,(重复的的数据被忽略)
    set1=set([0,1,2,3,1,0,2,5])
    print set1
    set2=set([0,1,2,3,4,5])
    print set2
    运行输出:
    set([0, 1, 2, 3, 5])
    set([0, 1, 2, 3, 4, 5])

    (2)集合元素的顺序是随意的
    strs=set(['jetf','wong','cnblogs'])
    print strs
    运行输出:
    set(['wong', 'jetf', 'cnblogs'])

    2.集合常用方法
    (1)并集union 或者 |
    set1=set([1,2,3])
    set2=set([2,3,4])
    set3=set1.union(set2)
    print set3
    运行输出:
    set([1, 2, 3,4])

    set1=set([1,2,3])
    set2=set([2,3,4])
    set3=set1|set2
    print set3
    运行输出:
    set([1, 2, 3, 4])

    (2)还包括&交集,<=,>=,-,copy()等
    &交集:
    set1 = set([1, 2, 3])
    set2 = set([2, 3, 4])
    set3 = set1&set2
    print set3
    运行输出:
    set([2, 3])

    issubset是否子集
    set1 = set([1, 2, 3])
    set2 = set([2, 3, 4])
    set3 = set1&set2
    print set3.issubset(set1)
    运行输出:
    True

    copy() is 判断是否
    set1 = set([1, 2, 3]) set1 = set([1, 2, 3])
    set2 = set([2, 3, 4]) set2 = set([2, 3, 4])
    set4 = set1.copy() set4 = set1.copy()
    print set4 print set4 is set1
    运行输出:
    set([1, 2, 3]) False

    add 添加 remove 移除 print 29 in set1 查找29是否在set1里
    set1 = set([1]) set1 = set([1,2])
    print set1 print set1
    set1.add(2) set1.remove(2)
    print set1 print set2
    运行输出:
    set([1]) set([1, 2])
    set([1, 2]) set([1])

    print 29 in set1 查找29是否在set1里
    True/False

    (3)frozenset
    集合是可变的,所以不能用做字典的键。集合本身只能包含不可变量,所以也就不能包含其他集合
    set1=set([1])
    set2=set([2])
    set1.add(set2)
    运行会报错

    可以使用frozenset类型用于代表不可变(可散列)的集合
    set1=set([1])
    set2=set([2])
    set1.add(frozenset(set2))
    print set1
    运行输出:
    set([1, frozenset([2])])

    2.元组
    Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
    (1)创建:在括号中添加元素,使用逗号隔开即可。
    tup1 = ('pyghfsd'.'chemistry',1997,2000);
    tup2 = (1,2,3,4)
    tup3 = "s","d","g","c";

    创建空元组 创建1个元素
    tup1 = (); tup1 = (50,);

    (2)访问
    tup1 = ('pyghfsd','chemistry', 1997, 2000);
    tup2 = (1, 2, 3, 4, 5, 6, 7);
    print "tup1[0]:",tup1[0]
    print "tup2[1:5]:",tup2[1:5]
    运行输出:
    tup1[0]: pyghfsd
    tup2[1:5]: (2, 3, 4, 5)

    (3)修改,直接修改元组元素值是不对的,但我们可以对元组进行连接组合:
    tup1=(12,345)
    tup2=('adc','sds')
    tup3=tup1+tup2
    print tup3
    运行输出:
    (12, 345, 'adc', 'sds')

    (4)删除,元组中的元素值是不允许删除的,但我们可以用del语句来删除整个元组。
    tup=('sdfsdf','yuazu','hahah')
    print tup
    del tup
    print "After deleting tup"
    print tup
    运行输出:
    ('sdfsdf', 'yuazu', 'hahah')
    Traceback (most recent call last):
    After deleting tup
    后报错

    (5)常用表达式 结果 描述
    len((1,2,3)) 3 计算元素的个数
    (1,2,3)+(4,5,6) (1,2,3,4,5,6) 连接
    ('Hi!',)*4 ('Hi!','Hi!','Hi!','Hi!',) 复制
    3 in (1,2,3) True 元素是否存在
    for x in (1,2,3): print x, 1 2 3 迭代

    (6)索引,截取
    因为元组也是一个序列,所以我们可以访问元组中的指定元素,也可以截取一段元素
    L = ('spam','Spam','SPAM')
    python表达式 结果 描述
    L[2] 'SPAM' 读取第三个元素
    L[-2] 'Spam' 读取倒数第二个元素
    L[1:] 'spam','Spam' 截取元素(从1到最后)

    (7)无关闭分隔符
    任意无符号的对象,以逗号隔开,默认为元组,如下:
    print 'abc', -4.24e93, 18+6.6j, 'xyz'
    x, y = 1, 3
    print "Value of x,y : ", x, y
    运行输出:
    abc -4.24e+93 (18+6.6j) xyz
    Value of x,y : 1 3

    相关文章

      网友评论

          本文标题:数据结构/集合/元组

          本文链接:https://www.haomeiwen.com/subject/ngfbuxtx.html