• 写给小白的Python之010:数据类型之集合、公共方法


    导读:

    1.集合

    2.内置函数

    3.切片

    4.运算符

    5.数据类型转换

    6.数据类型检查、

     

    一、集合

    集合(set)是一个 无序 不重复 元素的集。基本功能是进行成员关系测试和消除重复元素。

    可以使用大括号 或者 set()函数创建set集合。

    注意:创建一个空集合必须用 set() 而不是 { },因为{ }是用来创建一个空字典。

    >>> student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
    >>> print(student)  # 重复的元素被自动去掉
    {'Jim', 'Jack', 'Mary', 'Tom', 'Rose'}
    >>> 'Rose' in student  # membership testing( 成员测试)
    True

    集合的增加和删除

    >>>student.add('Amy')
    >>>student
    {'Mary', 'Jim', 'Jack', 'Rose', 'Tom', 'Amy'}
    >>>student.remove('Mary') >>>student {'Jim', 'Jack', 'Rose', 'Tom', 'Amy'}

    set可以进行集合运算

    >>> a = set('abracadabra')
    >>> b = set('alacazam')
    
    >>> a
    {'a', 'b', 'c', 'd', 'r'}
    
    >>> a - b # a和b的差集
    {'b', 'd', 'r'}
    
    >>> a | b # a和b的并集
    {'l', 'm', 'a', 'b', 'c', 'd', 'z', 'r'}
    
    >>> a & b # a和b的交集
    {'a', 'c'}
    
    >>> a ^ b # a和b中不同时存在的元素
    {'l', 'm', 'b', 'd', 'z', 'r'}
    
    >>> a = {'a', 'b', 'c', 'd'}
    >>> b = {'a', 'b'}
    >>> b < a # 判断b是否是a对的子集
    True

    要点:

    1、set集合中的元素不重复,重复了它会自动去掉。
    2、set集合可以用大括号或者set()函数创建,但空集合必须使用set()函数创建。
    3、set集合可以用来进行成员测试、消除重复元素。
    4、可用于数据清洗。

    二、Python内置函数

    Python 包含了以下内置函数:

    注意:
    字符串 比较符合以下规则: “0” < “A” < “a”

    len

    >>> len("hello itcast")
    12
    >>> len([1, 2, 3, 4])
    4
    >>> len((3,4))
    2
    >>> len({"a":1, "b":2})
    2

    注意:len在操作字典数据时,返回的是键值对个数。

    max

    >>> max("hello itcast")
    't'
    >>> max([1,4,522,3,4])
    522
    >>> max({"a":10, "b":2})
    'b'
    >>> max({"c":10, "b":2})
    'c'


    del
    del有两种用法,一种是del加空格,另一种是del()

    >>> a = 1
    >>> a
    1
    >>> del a
    >>> a
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    NameError: name 'a' is not defined
    >>> a = ['a', 'b']
    >>> del a[0]
    >>> a
    ['b']
    >>> del(a)
    >>> a
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    NameError: name 'a' is not defined


    cmp

    >>> cmp("hello", "itcast")
    -1
    >>> cmp("itcast", "hello")
    1
    >>> cmp("itcast", "itcast")
    0
    >>> cmp([1, 2], [3, 4])
    -1
    >>> cmp([1, 2], [1, 1])
    1
    >>> cmp([1, 2], [1, 2, 3])
    -1
    >>> cmp({"a":1}, {"b":1})
    -1
    >>> cmp({"a":2}, {"a":1})
    1
    >>> cmp({"a":2}, {"a":2, "b":1})
    -1

    注意:cmp在比较字典数据时,先比较键,再比较值。

    三、切片

    1、切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串;
    2、列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据;
    3、字典 是一个 无序 的集合,是使用 键值对 保存数据。

    切片操作十分有用。取一个25-35的整数数列:

    >>> l = list(range(100))[25:36]
    >>> l
    [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35]

     

    四、运算符

    注意:
    in 在对 字典 操作时,判断的是 字典的键;
    in 和 not in 被称为 成员运算符.

    +

    >>> "hello " + "itcast"
    'hello itcast'
    >>> [1, 2] + [3, 4]
    [1, 2, 3, 4]
    >>> ('a', 'b') + ('c', 'd')
    ('a', 'b', 'c', 'd')


    *

    >>> 'ab'*4
    'ababab'
    >>> [1, 2]*4
    [1, 2, 1, 2, 1, 2, 1, 2]
    >>> ('a', 'b')*4
    ('a', 'b', 'a', 'b', 'a', 'b', 'a', 'b')


    in

    >>> 'itc' in 'hello itcast'
    True
    >>> 3 in [1, 2]
    False
    >>> 4 in (1, 2, 3, 4)
    True
    >>> "name" in {"name":"Delron", "age":24}
    True

    五、数据类型转换

    常用的数据类型转换:

    举例:

    # int(): 将数据转换为 int 类型>>> str1 = "10"
    # int() 默认按10进制转换后显示
    ... num1 = int(str1)
    # int() 处理浮点数,只留下整数部分,舍弃小数部分(并不是四舍五入操作)
    ... num2 = int(3.74)
    >>> print(num2)
    3
    
    >>> """
    ... num1 = int(str1, 8) # 第二个参数为8,表示按8进制转换后显示,结果为 8
    ... num1 = int(str1, 16) # # 第二个参数为16,表示按16进制转换后显示,结果为 16
    ... #01 02 03 04 05 06 07 10
    ... #01 02 ... 0B 0C 0D 0E 0F 10
    ... print(num1)
    ... """
    
    # float() 将数据转化为浮点数 ... str2 = "3.14" >>> f1 = float(str2) >>> print(type(f1)) <class 'float'> >>> >>> f2 = float(10) >>> print(f2) 10.0 >>>

    # complex() 创建复数: 第一个参数是复数的实部,第二个参数是复数的虚部 ... c1 = 10 + 4j >>> c2 = complex(10, 4) >>> >>> print(c1) (10+4j) >>> print(c2) # 等同与c1 (10+4j)

    # str() : 转换为 字符串类型 ... num1 = 10 >>> f1 = 3.14 >>> >>> print(type(str(num1))) <class 'str'> >>> print(type(str(f1))) <class 'str'>

    # repr(): 转换为表达式字符串 ... num1 = 10 >>> print(type(repr(num1))) <class 'str'>

    # eval(): 将字符串形式的数据,转换为原本的类型 ... str1 = "3.14" >>> print(type(eval(str1))) <class 'float'> >>> >>> str2 = "[10, 20, 30]" >>> l = eval(str2) >>> print(type(l)) <class 'list'>

    # chr: 将一个整数转换为对应的 Unicode 字符 ... s = chr(1065) >>> print(s) Щ

    # ord :将一个字符转换为对应的字符编码数字 ... n = ord("A") >>> print(n) 65

    # bin: 将一个整数转换为二进制 ... print(bin(1024)) # 0b 开头表示二进制数 0b10000000000

    # oct:将一个整数转换为八进制 ... print(oct(1024)) # 0o 开头表示八进制数 0o2000

    # hex: 将一个整数转换为十六进制 ... print(hex(1024)) # 0x 开头表示十六进制 0x400 >>> a = '100' # 此时a的类型是一个字符串,里面存放了100这3个字符 b = int(a) # 此时b的类型是整型,里面存放的是数字100 print("a=%d"%b) 结果为:a=100

    六、数据类型检查

    数据类型检查可以用内置函数 isinstance()实现:

    >>> x = 'abc'
    >>> y = 123
    >>> isinstance(x, str)
    True
    >>> isinstance(y, str)
    False
    
    
    def my_abs(x):
        if not isinstance(x, (int, float)):
            raise TypeError('bad operand type')
        if x >= 0:
            return x
        else:
            return -x

    至此,Python的数据类型就全部讲完了。其他会提及的,后续会再补充。

  • 相关阅读:
    界面实现的小总结
    创建线程的三种方式
    之前总结的今天给大分享一下iOS
    MVVM
    响应者链条
    layer图层常见属性
    NSRunLoop && NSTimer
    关于Angularjs做的一个购物车小例子
    css中实现元素的绝对居中
    剑指 Offer 18. 删除链表的节点 链表
  • 原文地址:https://www.cnblogs.com/salmond/p/8777046.html
Copyright © 2020-2023  润新知