python入门——python数据类型

发布时间:2019-09-25 08:20:07编辑:auto阅读(1975)


    一、数据类型



    1、核心数据类型:


    • 数字:int, long(python3.5已经没有), float, complex, bool

    • 字符:str, unicode

    • 列表:list

    • 字典:dict

    • 元组:tuple

    • 集合:set(可变集合),frozenset(不可变集合)

    • 文件:file


    二、数字类型


    python的数字字面量:整数,布尔型,浮点数,复数,所有数字类型均为不可变

    数字操作:+ , -, *, /, //, **, %, -x, +x


    三、列表


    列表是一系列按照特定顺序排列的元素组成可以是字母、数字等;

    在python中,列表用方括号[ ],来表示列表。作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。


    1、列表的操作方法和函数

    列表操作包含以下函数:
    1
    cmp(list1, list2):比较两个列表的元素
    2
    len(list):列表元素个数
    3
    max(list):返回列表元素最大值
    4
    min(list):返回列表元素最小值
    5
    list(seq):将元组转换为列表

    列表操作包含以下方法:
    1
    list.append(obj):在列表末尾添加新的对象
    2
    list.count(obj):统计某个元素在列表中出现的次数
    3
    list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
    4
    list.index(obj):从列表中找出某个值第一个匹配项的索引位置
    5
    list.insert(index, obj):将对象插入列表
    6
    list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    7
    list.remove(obj):移除列表中某个值的第一个匹配项
    8
    list.reverse():反向列表中元素
    9
    list.sort([func]):对原列表进行排序

    10list.append():  在列表末尾添加一个元素


    2、访问元素列表及切片


    列表的访问可以是标准输出,也可以是通过索引或切片使用列表中元素的值;

    与字符串的索引一样,列表索引从0开始,如果是反序,最后一个元素是 “-1”,倒数第二个元素的列下标识 “-2”。

    列表可以进行截取、组合等。

    使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    china = ["Chinese","yellowskin",960,16,"北京"]
    #输出列表
    print(china)
     
    #输出特定值,如第二个元素,即索引为1的;
    print(china[1])
     
    #输出最后两个元素
    print(china[-2:])
     
    #输出前三个元素
    print(china[:2])
     
    #输出最后两个元素外的所有元素
    print(china[:-2])
     
    #输出第二到第五的元素;
    print(china[1:4])
     
    #列表输出可以结合字符处理方法
    print(china[1].title())
    print(china[1].upper())
    #循环访问列表的元素:
    for i in china:
        print(i)


    3、修改、添加、删除列表元素

    由于列表大多数情况下是动态的,那么他的元素、长度等都是不断变化的;

    修改元素通过列下标直接赋值;

    添加元素可以通过append()方法在末尾添加,可以通过insert()方法在特定位置添加;

    删除元素可以通过pop()方法和del语句删除,当然你也可以通过del 删除整个列表;

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    china = ["Chinese","yellowskin",960,16,"北京"]
     
    #将列表第二个元素修改为“blackeyes”
    china[1] = "black eyes"
    print(china)
     
    #在列表末尾添加元素;
    china.append("Changjian")
    print(china)
     
    #在第三个前插入一个元素:
    china.insert(2,'Shanghai')
    print(china)
     
    #列表中删除元素,del语句:
    del china[-2]
    print(china)
     
    #pop()方法删除任意元素:
    china.pop(2)
    print(china)
     
    #根据值删除元素
    china.remove(960)
    print(china)

    输出结果:

    ['Chinese', 'black eyes', 960, 16, '北京']

    ['Chinese', 'black eyes', 960, 16, '北京','Changjian']

    ['Chinese', 'black eyes', 'Shanghai', 960,16, '北京', 'Changjian']

    ['Chinese', 'black eyes', 'Shanghai', 960,16, 'Changjian']

    ['Chinese', 'black eyes', 960, 16,'Changjian']

    ['Chinese', 'black eyes', 16, 'Changjian']


    4、对列表进行排序

    对列表进行排序的方法有

    sort()        对列表进行永久排序;

    sorted()              对列表进行临时排序

    reverse()            倒着打印列表,永久排序,恢复时可以再次调用reverse()

    len()                     取出列表的长度;


    #!/usr/bin/python
    # -*-coding: UTF-8 -*-
    counts =[1,3,5,7,9,2,4,6,8,10]
    counts1= []
    for i incounts:
    counts1.append(i)
    print(counts1)
    print(counts)
     
    counts.sort()
    print(counts)
     
    print(sorted(counts1))
    print(counts1)
     
    counts1.reverse()
    print(counts1)
    print(len(counts))

    5、遍历列表

    5.1for循环遍历列表和复制列表

    counts =[1,3,5,7,9,2,4,6,8,10]
    counts1= []
    for i incounts:
    counts1.append(i)
    print(counts1)
    print(counts)

    5.2、创建数值列表

    counts2 = [ j**3  for j in range(1,10)]
    print(counts2)
    type(counts2[2])

    使用range创建数字列表

    counts3 = list(range(1,21,2))

    print(counts3)

    type(counts3[2])

    5.3、列表的简单统计

    counter = list(range(1,21,2))

    min(counter)

    max(counter)

    sum(counter)


    四、元组

    • 元组看起来犹如列表,但使用圆括号()来标识。定义元组后,就可以使用索引来访问其元素;

    • 元组的遍历和列表一样可以使用for循环等;

    • 元组是不能修改其元素的,但可以给存储元组的变量赋值;

    • 括号()既可以表示元组,又可以表示数学公式中的小括号。所以,如果元组只有1个元素,就必须加一个逗号,防止被当作括号运算;

    • 元组与列表的区别,元组它的关键是不可变性。

    • 如果在程序中以列表的形式传递一个对象的集合,它可能在任何地方改变;如果使用元组的话,则不能。

    • 元组提供了一种完整的约束。

    1、字典基本操作

    字典是另一种可变容器模型,且可存储任意类型对象。

    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({}) ,格式如下所示:

    d = {key1 : value1, key2 : value2 }

    键必须是唯一的,但值则不必。

    值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

    • 要获取字典中的值,可依次指定字典名和放在方括号内的键;如print(dict[‘key]’)

    • 要添加键-值对,可依次指定字典名、用方括号括起来的键和对应的值;

    • 使用字典存储大量数据或者编写能自动生成大量键-值得代码时,通常需要先定义一个空字典,如:dict = {}

    • 要修改字典中的值,可依次指定字典名、用方括号括起来的键以及与该键相关的新值;

    • 要删除键-值对,可使用del语句键对应的键-值对彻底删除。使用del语句必须指定字典名和要删除的键;

    示例:

    #coding:UTF-8
    import string
    
    #定义一个空字典dict1
    dict1 = {}
    #利用for循环给dict1赋值
    i = 1
    for word in string.ascii_lowercase:
    	if i < 14:
    		dict1[i] = word
    	else:
    		dict1[word] = i
    	i += 1
    print(dict1)
    
    #访问字典中的值
    print(dict1[13])
    print(dict1['o'])
    
    #添加键-值对
    dict1[27] = "error"
    print(dict1[27])
    
    #修改字典中的值
    dict1[27] = "out of range"
    print(dict1[27])
    
    #删除键值对
    print(dict1['z'])
    del dict1['z']
    print(dict1)

    2、遍历字典

    在遍历字典前,先学习一下字典内置的函数和方法,在遍历时,结合函数和方法遍历输出;

    python字典的函数。

    方法

    解释

    len(dict)

    计算字典元素个数,即键的总数。

    str(dict)

    输出字典以可打印的字符串表示。

    type(variable)

    返回输入的变量类型,如果变量是字典就返回字典类型。

    dict.clear()

    删除字典内所有元素

    dict.copy()

    返回一个字典的浅复制

    dict.fromkeys(seq  [,value])

    创建一个新字典,序列seq中元素作为字典的键,value(可选)作为字典所有键对应的初始值。--seq为一个列表;

    dict.get(key[, default=None])

    返回指定键的值,如果值不在字典中返回default(默认为none)

    key in dict

    如果键在字典dict里返回true,否则返回falsekey -- 在字典中要查找的键

    dict.items()

    以列表返回可遍历的(, 值列表。

    dict.keys()

    以列表返回字典中的所有值。

    dict.setdefault(key, default=None)

    get()类似, 但如果键不存在于字典中,将会添加键并将键值设为default

    dict.update(dict1)

    把字典dict1的键/值对更新到dict里。无返回值。

    pop(key[,default])

    删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。否则,返回default

             popitem()

    随机返回并删除字典中的一对键和值。

    #coding:UTF-8
    import string
    
    #定义一个空字典dict1
    dict1 = {}
    #利用for循环给dict1赋值
    i = 1
    for word in string.ascii_lowercase:
    	if i < 14:
    		dict1[str(i)] = word
    	elif i > 14:
    		dict1[word] = str(i)
    	i += 1
    print(dict1)
    
    #遍历所有的键-值对
    for key,value in dict1.items():
    	print(key)
    	print(value)
    	print(dict1['1'].upper())
    	
    #遍历字典中所有的键
    for key in dict1.keys():
    	print(key)
    	
    #按照顺序遍历字典中所有的键,可以用sorded()来实现
    for key in sorted(dict1.keys()):
    	print(key.upper() + "大爷的")
    
    
    #遍历字典中多有的值,并使用set()方法去重;
    dict1['27'] = 'a'
    print(dict1['27'])
    for value in set(dict1.values()):
    	print(value)
    	
    print(dict1)
    
    #字典的浅复制
    dict2 =dict1.copy()
    print(dict2)
    
    #更新字典
    dict3 = {}
    dict3.update(dict1)
    print(dict3)
    
    
    #删除字典内所有的元素
    dict1.clear()
    print(dict1)

    3、嵌套

    字典除了单独使用外,经常会涉及到嵌套使用;列表、字典、元组等可以相互嵌套使用;

    使用的方法和对应的列表、字典、元组的使用方法类似,不多做说明;


关键字