zoukankan      html  css  js  c++  java
  • Python day six

      新的数据的类型的介绍:元组(tuple),字典(dictionary)

        元组特点,只可以读,不能修改。

      创建方法:

    a = (1, 2, 3, 4)
    print(a[1:3])  # 通过切片
    
    print(a[1])  # 元组只可读,不能修改

     字典:可以说是python中非常重要的数据类型,主要由键值构成。 字典是python中唯一的映射关系,采用键值对(key-value)的形式储存数据。python对key进行    哈希函数运算,根据结果决定value的存储地址,所以字典是无储存的,且key必须是可哈希的。    可哈希表示key必须是不可变类型,如:数字.字符串.元组。可变类型:列表,字典### 所谓不可变类型也就是创建后,在内存中开辟了空间,如果将值重新赋值也就是将它的指向转到另一块内存    id()方法输出它的内存    字典(dictionary)是处列表外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的    对象集合。再者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典两个特点:无序,键唯一    如果有两个相同的键在一个字典中后面的会顶掉它    创建方法:

            可以有两种:

                a = [1,2,3]

                a = list((1,2,3))

                dic = {}
    dic = dict((('name', 'alex'),))#里面的括号可以是其他的括号

    字典的增删改查操作的举例:
    # _author:"Isaac_hu"
    # data: 2018/2/27
    # dic1 = {[1, 2, 3]: 'isaac'}  # 这里会出错应为前面的是不能是可变类型
    # print(dic1)
    
    dic = {'name': 'isaac', 'age': 35, 'hobby': {'girl_name': 'hua', 'age': 15}, 'is_handsome': True, 'school': 'Dong'}
    print(dic['hobby'])
    
    dic = dict((('name', 'alex'),))
    print(dic)
    dic = {'name': 'isaac', 'age': 35, 'hobby': 'girl', 'is_handsome': True, 'school': 'Dong'}
    print(dic)  # 输出后可能是无序的,因为字典是无序的
    # 查  通过键查
    print(dic['name'])  # 通过键取出数据
    print(type(dic.keys()))  # 类型是dict_key 可以转化通过list函数
    print(list(dic.keys()))
    print(list(dic.values()))  # 通过values方法输出它的值
    print(list(dic.items()))  # 全部输出
    
    # 修改 修改值通过键来找
    dic['name'] = 'vic'
    print(dic)
    # 还可以同update方法
    dic1 = {'1': '111', '2': '2222', '3': '3333'}
    dic2 = {'4': '111', '5': '2222', '6': '3333'}
    dic1.update(dic2)
    print(dic1)
    print(dic2)
    
    # 删 clear del pop
    dic3 = {'name': 'isaac', 'age': 15}
    del dic3['name']
    print(dic3)  # 删除键值对
    
    dic3.clear()  # 清空
    print(dic3)
    
    dic3 = {'name': 'isaac', 'age': 15, 'hobby': 'girl'}
    print(dic3.pop('age'))  # 返回被删除键的值
    print(dic3)
    a = dic3.popitem()  # 随机删除一个键值对,并以元组方式返回
    print(a, dic3)
    
    # 其他操作以及涉及的方法
    dic4 = dict.fromkeys(['host', 'host2', 'host3'], 'test')
    dic4 = dict.fromkeys(['host', 'host2', 'host3'], 'test')
    print(dic4)  # {'host': 'test', 'host2': 'test', 'host3': 'test'}
    dic4 = dict.fromkeys(['host', 'host2', 'host3'], ['test1', 'test2'])
    # 排序
    dic5 = {5: '55', 2: '222', 4: '444'}
    print(sorted(dic5))
    print(sorted(dic5.values()))
    print(sorted(dic5.items()))
    
    dic3 = {'name': 'isaac', 'age': 15, 'hobby': 'girl'}
    
    for i in dic3:
        print(i)  # 这样是打印出键
        print(i, dic[i])  # 通过键找值,效率最高
    
    for i, v in dic3.items():
        print(i, v)  # 这个效率不高
    # _author:"Isaac_hu"
    # data: 2018/2/28
    
    dic = {'name': 'alex'}
    dic['age'] = 18
    print(dic)
    
    # 如果有就不修改,没有就添加,有返回值对应键的值
    dic.setdefault('age', 34)
    print(dic)

      嵌套,嵌套是python中十分重要的用法,一个对于列表,字典。不断的嵌套能够创建出菜单管理等。能够十分清晰的展现如省县市的下属关系等等。

      字符串类型:

        是基本也是最关键的一个数据类型,我们的input的函数也就是输入一个字符串。

    这里大部分字符串的方法:直接用代码表示了:

    # _author:"Isaac_hu"
    # data: 2018/2/28
    a = "let's go"
    print(a)
    
    # 字符串的乘法,用于输出重复的字符
    b = 'hello'
    print(b*10)
    
    #  通过索引取字符串,这里和切片操作一致,具体见列表
    print('hello world'[2:])
    # in判断字符串是否在另一个字符串中
    print('ast'in'wast')
    # %s 格式化字符
    name = "isaac"
    print('isaac is a good student')
    print("%s is a good student" % name)
    # 字符串的拼接 + 效率十分低下,会开辟很多内存
    a = '123'
    b = '456'
    d = '44'
    # c = a + b
    # print(c)
    # join方法 前面是用于拼接的东西
    c = '-'.join([a, b, d])
    print(c)
    
    # string的内置方法
    st = 'hello world {name} is {age}'
    print(st.count('l'))              # 计算字符串的某个字符的个数
    print(st.capitalize())            # 字符串首字母大写
    print(st.center(50, '-'))         # 前面的字符的总数,后面的其他的字符,居中 后面必须有东西
    print(st.encode())  # 编码----
    print(st.endswith('rld'))         # 判断以某某结尾,可以加范围
    print(st.startswith('he'))        # 判断以某某开头,也可以加范围
    print(st.expandtabs(tabsize=10))  # 改变tab的大小,本来是4个空格可以改	
    print(st.find('t'))               # 查找到第一个元素并将索引值返回
    print(st.format(name='isaac', age=22))    # 用于格式化输出  待定: ?:{}
    print(st.format_map({'name': 'isaac', 'age': 22}))  # 用于格式化输出
    print(st.index('h'))  # index和find差不多,但是没有时find会返回-1,index会报错
    print('abc456'.isalnum())  # 只要不是特殊字符即返回True
    print('0010'.isdecimal())  # 判断是不是一个十进制的数
    print('123132'.isdigit())  # 判断是否是个数字必须是整数
    print('asf'.isalpha())  # 判断一个数字是否是字母
    print('15165'.isnumeric())  # 和isdigit类似
    print('1sad'.isidentifier())  # 检验是否是不是合法命名标识
    print('abc'.islower())  # 判断一个字符串是不是全小写
    print('ABC'.isupper())  # 判断一个字符串是不是全大写
    print('  '.isspace())  # 判断是否全为空格
    print('My Title'.istitle())  # 每个单词,是否首字母大写
    print('MY TITLE'.lower())  # 大写变小写
    print('my name'.upper())  # 小写变大写
    print('My Title'.swapcase())  # 大写变小写,小写变大写
    print('asd'.ljust(50, '*'))  # 左对齐
    print('asd'.rjust(50, '*'))  # 右对齐
    print(' 	  isa ac 
    '.strip())  # 去掉前后所有换行符,空格,制表符
    print(' 	  isa ac 
    '.lstrip())  # 去掉前所有换行符,空格,制表符
    print(' 	  isa ac 
    '.rstrip())  # 去掉后所有换行符,空格,制表符
    print('My name'.replace('name', 'age'))  # 替换所有,后面可以加一个控制替换的次数的参数
    print('My title title'.rfind('t'))  # 从右边开始找,返回它的索引位置
    print('My title title'.split(' '))  # 分割成列表 依据参数,列表组合成string用join
    print('My title title'.rsplit('i', 1))  # 分割一次,以右为准。
    print('my title title'.title())  # 改成标题格式
    
    # 重要的字符串方法
    # print(st.count('l'))
    # print(st.center(50, '-'))
    # print(st.startswith('he'))
    # print(st.find('t'))
    # print(st.format(name='isaac', age=22))
    # print('MY TITLE'.lower())  # 大写变小写
    # print('my name'.upper())  # 小写变大写
    # print(' 	  isa ac 
    '.strip())  # 去掉前后所有换行符,空格,制表符
    # print('My name'.replace('name', 'age'))  # 替换所有,后面可以加一个控制替换的次数的参数
    # print('My title title'.split(' '))  # 分割成列表 依据参数,列表组合成string用join

      这里对应了之前的万恶字符串拼接,引入了一个join方法,是一个十分有用的方法。与split可以说是一个对应的关系啦!


  • 相关阅读:
    ★★★
    ★★
    小狼程序员:工作遐想
    广联达BB了
    计算机网络简单理解
    做个合格的(优秀的)测试开发人员
    开发、测试、测试开发
    8.21
    C++ 选择题总结(回调函数 || 类方法(实例方法)|| )
    深拷贝实现笔记
  • 原文地址:https://www.cnblogs.com/isaac-hu/p/8490605.html
Copyright © 2011-2022 走看看