zoukankan      html  css  js  c++  java
  • python基础dict,集合,文件

    字典是一种key:value的数据类型
    dict1{
      'stud1':'孙礼昭',
      'stud2':'slz',
      'stud3':'sunlizhao',
    }
    dict是无序的,key是唯一的  天生去重
    增加:
      dict1['stud4'] = '苍井空'
    修改:
      dict1['stud4'] = '武藤兰'
    删除:
      指定key删除
      dict1.pop('stud3');
      del dict1['stud2']
      随机删除:
      dict1.popitem()
    查找:
      标准用法:
      stud1 in dict1
      通过key查找value,不存在会返回none
      dict1.get('stud1')
    嵌套:
    av_catalog = {
        "欧美":{
            "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
            "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
            "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
            "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
        },
        "日韩":{
            "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
        },
        "大陆":{
            "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
        }
    }

    av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"
    print(av_catalog["大陆"]["1024"])
    #ouput
    ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']


    其他姿势:
      整个dict的value
      dict1.values()
      整个dict的key
      dict1.keys()


    set要求里面的元素必须是不可变的:不能是列表,字典,,但他本身却是可变的,不能用作字典的键
    数据类型 :整型 浮点型 字符串 列表 元组(tuple) 字典 布尔 集合
    集合是一个无序的,不重复的数据组合,它的主要作用如下:
      去重,把一个列表变成集合,就自动去重了
      
    关系测试,测试两组数据之前的交集、差集、并集等关系
    s = set([3,5,9,10,3,9])     创建一个数值集合 
    t = set("Hello")   创建一个唯一字符的集合

    print(a.intersection(b))         交集,把相同的内容取出来 简写(a&b)
    print(a.union(b))# 并集,把a和b组成一个大集合合在一块简写(a|b)
    print(a.difference(b))# 差级 a里面有的,但b里面没有的 简写(a-b)
    print(a.symmetric_difference(b)) 反交集,把把没有重复的内容取出来 简写(a^b)

    # print(a.issuperset(b))# b中的每一个元素是否都在a中 a>=b

    t.add('x') # 添加一项
    s.update([10,37,42]) # 在s中添加多项
     
    文件操作
    1打开文件,获得文件句柄并赋值给一个变量
    2通过句柄对文件进行操作
    3关闭文件

    打开文件的模式有:

    r,只读模式(默认)。

    w,只写模式。【不可读;不存在则创建;存在则删除内容;】

    a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

    r+,可读写文件。【可读;可写;可追加】

    w+,写读

    a+,同a

    "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)

    "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

    rb        wb           ab

    • 模式rr+ww+aa+
      + +   +   +
        + + + + +
      创建     + + + +
      覆盖     + +    
      指针在开始 + + + +    
      指针在结尾         + +
    
    
    import os
    f = open('feb8-1.txt','r+') 打开文件
    f.write('hello') 写入内容
    f.read(20) read()方法就是把所有的数据提取出来,参数限制提取数量,中文英文占位相同
    print(fff.readline()) 打印当前游标所在单行

    print(fff.readlines()) 打印游标之后的所有内容(多行)
    f.close() 关闭打开的文件

    f.tell() 文件中光标的位置(中:3,英:1)
    f.seek(3)            人为的将光标定位到3的位置
    f.flush()            将内容从内存写入到磁盘
    f.truncate([size])         截取文件,截取的字节通过size指定,默认为当前文件位置。
    os.rename('当前文件名','新文件名')   os模块进行重命名
    os.remove(删除的文件名) os模块删除文件
    os.mkdir('test') 当前目录下创建新目录test
    os.chdir("/home/newdir")              当前目录改为'/home/newdir'
    os.getcwd() 显示当前的工作目录
    文件逐行打印,第六行添加字符串
    # num = 0
    # for i in fff.readlines():
    # num += 1
    # if num == 6:
    # i = ''.join([i.strip(),'----'])
    # print(i.strip())
    # fff.close()
     
     
     
     


  • 相关阅读:
    2015苏州大学ACM-ICPC集训队选拔赛(2)1004
    2015苏州大学ACM-ICPC集训队选拔赛(2)1002
    Codeforces Round #339 (Div. 2) A
    2015苏州大学ACM-ICPC集训队选拔赛(2) 1001 1003 1010
    HDU计算机学院大学生程序设计竞赛(2015’12)Happy Value
    HDU计算机学院大学生程序设计竞赛(2015’12)The Magic Tower
    HDU计算机学院大学生程序设计竞赛(2015’12)The Country List
    2015苏州大学ACM-ICPC集训队选拔赛(1) 1008
    2015苏州大学ACM-ICPC集训队选拔赛(1) 1007
    在Window Embedded CE(Wince)下使用OpenNETCF进行路由表的开发
  • 原文地址:https://www.cnblogs.com/sunlizhao/p/8454479.html
Copyright © 2011-2022 走看看