zoukankan      html  css  js  c++  java
  • Python从入门到精通之Sixth!

    补充:enumerate 函数用于遍历序列(元组tuple、列表list、字典dict)中的元素以及它们的下标:

    >>> for i,j in enumerate(('a','b','c')):
          print(i,j,end="")
    0 a1 b 2c

    Python 集合set

    定义:由不同元素组成的无序的元组    形式:S = {'H','E','L','L','O'}或者S = set('HELLO')

    set()函数可以把列表、元组等等转换为集合     集合可以做到简单去重的效果,也可以进行交差并等的集合运算。

    集合的内置方法:

    #add方法:把元素添加到集合
    s = {1,2,4,5}
    s.add('3')
    
    #clear方法:清空集合
    s.clear()
    
    #copy拷贝
    s1 = s.copy()
    
    #pop方法:随机删除一个值
    s = {1,2,3,4,5}
    s.pop()
    
    #remove方法:指定删除,删除元素不存在会报错
    s = {1,2,3,4,5,'hello'}
    s.remove('hello')
    
    #discard方法:指定删除,删除元素不存在不会报错
    s = {1,2,3,4,5,'hello'}
    s.discard('hello')

    集合的运算:交、并、差

    #求交集   2个方法:intersection 或 &
    Linux = ['a',1,2,3,'b']
    Python = ['a',5,3,6,4,'c']
    linux_s = set(Linux)
    python_s = set(Python)
    print(python_s.intersection(linux_s))
    print(python_s & linux_s)
    
    #求并集 2个方法:union 或 | Linux = ['a',1,2,3,'b'] Python = ['a',5,3,6,4,'c'] a = set(Linux) b = set(Python) print(a.union(b)) print(a | b) #求差集 2个方法:difference 或 -(减号) Linux = ['a',1,2,3,'b'] Python = ['a',5,3,6,4,'c'] a = set(Linux) b = set(Python) print(b-a) print(a-b) print(b.difference(a)) #b集合减去a集合 print(a.difference(b)) #a集合减去b集合
    a.difference_update(b)  #a集合减去b集合并更新a集合,与上面作用没什么大的区别
     

    #交差补集:两集合并到一起,之后减去两个共有的元素

    #求交叉补集 两种方法:symmetric_difference() 或 ^
    Linux = ['a',1,2,3,'b']
    Python = ['a',5,3,6,4,'c']
    a = set(Linux)
    b = set(Python)
    print(a.symmetric_difference(b))
    print(a ^ b)

    集合运算补充:

    #isdisjoint方法:如果两个集合的交集不存在则为True,否则False
    print(linux_s.isdisjoint(python_s))
    
    #issubset()方法:如果s1是s2的子集,返回True
    print(s1.issubset(s2))
    #issuperset()方法:如果s1是s2的父集,返回True
    print(s1.issuperset(s2))
    
    #update更新,add只能添加一个值,而update可用于更新多个值(包括列表元组等等)
    s1 = {1,2}
    s2 = {1,2,3}
    s1.update(s2)     ==========>{1,2,3}
    
    #symmetric_difference_update方法:与symmetric_difference()交叉补集几乎相同
    
    #intersection_update:与交集几乎相同

    集合是可变的,定义不可变集合:s = frozenset()

    不可变集合没有add、remove等等的方法。

    字符串拼接  注意:拼接字符串时不可以把字典与%d / %s同时使用,否则会报错

    msg = 'my hobby is alex' + '1hf'   #用加号拼接,但是效率低,一般不用。
    print(msg) 
    
    #%s代表字符串,可以接收多个任意类型值,他是万能的,包括列表。
    s前面可以加数值代表截取的长度 例如 .3s 代表3的单位长度的字符
    msg = 'I am %s my hobby is alex'  %'xut'
    print(msg)     =====>> I am xut my hobby is alex
    
    name = 'lhf'
    age = 19
    msg = 'i am %s my hobby is %d' %(name,age)
    
    #%d只可以接收整型数字,%f 代表浮点型,%.2f保留2位浮点数,并进行四舍五入
    #打印百分比,2个%
    tpl = 'percent %.2f %%'  %99.999
    print(tpl)       =====>> percent 100.00%
    
    #字典键值对的引用,%(keys)s/d    s是字符串d是整型
    tpl = 'i am %(name)s age %(age)d' %{"name":'alex',age:18} 
    
    #加号是右对齐指定长度(包括name的值),减号左对齐指定长度(包括name的值)
    tpl = 'i am %(name)-60s my hobby is alex' %{"name":lhf}
    print(tpl)      ======>> i am lhf                                              my hobby is alex
    

    print输出时的分割符用sep指定

    print('root ','x','0',sep=':')            ====>>  root:x:0

    format字符串格式化

    #format的一般用法,大括号内数字是索引号
    tpl = "i am {2},age {1},{0}".format("seven",18,'alex')
    print(tpl)     =======>>i am alex,age 18 ,seven
    
    tpl = "i am {1},age {1}"
    print(tpl)     ======>>i am 18,age 18
    
    #字典传值的两种方式,键keys 传值
    方法一:
    tpl = "i am {name},age {age}'".format(name="alex“,age=18)
    方法二:使用两个*,加上字典。
    tpl = "i am {name},age {age}".format(**{"name":'alex',"age":18})
    
    #列表传值时使用{索引号[列表索引号]}
    tpl = "i am {0[0]},age {1[1]}".format(["seven"],[18,'alex'])
    
    #{:S}代表传值的类型是字符串型 {:d}代表传值的类型是整型 {:f}代表传值的类型是浮点型
    tpl = "i am {:s},age {%d},{%f}“.format("alex",18,2.11)
    
    #*星号代表传入的只是一个列表
    tpl = "i am {:s},age {:d}".format(*["seven",18])
    m = ["seven",18]
    tpl = "i am {:s},age {:d}".format(*m)
    
    #:b二进制  :d整型 :o八进制 :x小写的16进制 :X大写的16进制  :%显示百分比
    tpl = "{%o},{:%}“.format(15,15)
    print(tpl)    =======>>17 15%
  • 相关阅读:
    Linux内核之旅 链表实现
    Linux内核之旅 List_entry()
    希尔排序
    华为2013校园招聘上机笔试题 ---2 字符串处理转换
    编程求凸包点集
    练习一:SQLite基本操作
    java实现单链表反转
    android-数据存储之外部file存储(sdcard)
    android-数据存储之手机内部file存储
    android-数据存储之SharedPreferences
  • 原文地址:https://www.cnblogs.com/xtznb/p/10403674.html
Copyright © 2011-2022 走看看