zyu911

set集合

  set集合是无序的,不重复的集合,有增加,删除,并集,交集,差集等方法.

 1 s = set() 默认创建空集合
 2 s = {}    和字典重和(默认是字典)
 3 
 4 se.add(44)      #添加元素,只能一个
 5 se.update(be)  #更新,可以多个,或列表
 6 
 7 abc = se.pop()    #移除并赋值(无序不一定删除哪个)
 8 se.discard(11)    #移除,没有,不报错
 9 se.remove(44)   #移除,没有,报错
10 
11 ret = se.difference(be)     #差集se减be,两者都有不输出
12 se.difference_update(be)  #找到se中存在的be中不存的并更新自已
13 
14 ret = se.intersection(be) #交集,返回两个集合都有的元素
15 se.intersection_update()  #交集,更新
16 
17 se.isdisjoint(be)    #判断有没有交集有True
18 se.issubset(be)     #判断se中包含be(be是不是se的子集)
19 se.issuperset(be)  #se是不是be的子集
20 
21 ret = se.symmetric_difference()  #对衬差集
22 ret = se.symmetric_difference_update()
23 ret = se.union(be)    #并集,合一块

三元运算:

  三元运算简单的if运算

name = num1  if  条件 else  num2  #如果条件为真name等于num1反之num2

数字和字符串

  对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址

拷贝列表元组字典

  浅拷贝只是把列表,元组,字典的第一导拷贝一份,其它的不变

  

对于列表,元组,字典深拷贝,是将除底层数据(数字,字符串)之外的所有结构全部拷贝.

python 函数

  定义函数 

def  name(形参) :   #定义函数
    pass

普通参数:       只能按顺序接收,每一个形参接收一个实参,少了多了都不行传实参时写上形参的名=实参,可以不按顺序传.

默认参数:       形参可以有默认值,没有实参形参就使用默认值,放到参数表的最后

动态参数*a:    实参(11,22,33,44,55,\'abcd\',[1,3],{1:3,3:9}) 接收到会组成元组如果实参是列表,元组或字符串,想直接传过去列表名前加*即可

动态参数**a:  实参(k1=11,k2=22,k3=33)接收到会组成字典如果想用字典名把字典传过去前面加**即可.
全局变量        在代码块中可直接读取全局变量,但不能修改.要修改全局变量必须加global 关健字(全局变量名一般大写)

局部变量        仅仅在代码块中使用一般小写

def a11(a,b) :   #普通参数
    pass
def a22(a,b=None) :  #b为默认值的参数,如果没有传实参,会使用默认值
    pass
def a33(*a) :     #动态参数可接收列表,元组,字符串(1,2,3,4);[\'df\',\'df\',\'ef\'].想直接传对象名要加*号
    pass
def a44(**a) :   #动态参数可接收字典(\'k1\':123,\'k2\':234) 要传字典名前加**
    pass

寻找差异

old_dict = {
    \'#1\' : 11,
    \'#2\' : 22,
    \'#3\' : 100,
}
new_dict = {
    \'#1\' : 33,
    \'#4\' : 22,
    \'#7\' :100,
}
old_set = set(old_dict.keys())
new_set = set(new_dict.keys())

del_set = old_set.difference(new_set)
add_set = new_set.difference(old_set)
update = old_set.intersection(new_set)

# del old_set
for i in del_set : del old_dict[i]
for i in add_set : old_dict[i] = new_dict[i]
for i in update : old_dict[i] = new_dict[i]

for k,i in old_dict.items() :
    print(k,i)
View Code

写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数

def jishu(string) :
    num = 0
    zm = 0
    kg = 0
    qt = 0
    for i in string :
        if i.isalpha() : zm += 1
        elif i.isdigit() : num += 1
        elif i.isspace() : kg += 1
        else : qt += 1
    return (num,zm,kg,qt)
raw = input("请输入含数字字母空格的字符串...")
pri = jishu(raw)
print("数字%d 字母%d 空格%d 其它%d"%(pri[0],pri[1],pri[2],pri[3]))
统记

写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

def paduan(*list_name) :
    if len(list_name) > 5 : return True
    else : return False
li = [1,2,3,4,5,6,7,]
li2 = [33,44,55,66,]
st = \'abcdefghigklmnopqrstuvwxyz\'
print(paduan(*li))
print(paduan(*li2))
print(paduan(*st))
View Code

写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。

def jishu(string) :
    num = 0
    zm = 0
    kg = 0
    qt = 0
    for i in string :
        if i.isalpha() : zm += 1
        elif i.isdigit() : num += 1
        elif i.isspace() : kg += 1
        else : qt += 1
    return (num,zm,kg,qt)
raw = input("请输入含数字字母空格的字符串...")
pri = jishu(raw)
print("数字%d 字母%d 空格%d 其它%d"%(pri[0],pri[1],pri[2],pri[3]))
View Code

写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

def two(*lis) :
    if len(lis) >= 2 :
        new_lis =lis[:2]
        return new_lis
    else :
        return None
de = (112,33,556,7,78)
print(two(*de))
View Code

写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

#6、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def jishu(*lis) :
    ret = []
    for i in range(1,len(lis),2) :
        ret.append(lis[i])
    return ret
de = (1,3,5,6,4,3,3,2,5,6,7,4,4,2,)
print(jishu(*de))
View Code

写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

def dic(**abk) :
    new_dic = {}
    for k,i in abk.items() :
        if type(i) == str and len(i) >= 2 :
            new_dic[k] = i[:2]
        elif type(i) == list and len(i) >= 2 :
            new_dic[k] = i[:2]
    return new_dic
di = {"k1": "v1v1", "k2": [11,22,33,44], "k24": [11,22,33,44]}
print(dic(**di))
View Code

 

分类:

技术点:

相关文章:

  • 2021-12-01
  • 2022-12-23
  • 2021-05-22
  • 2021-11-22
  • 2022-02-15
  • 2021-01-30
  • 2022-12-23
  • 2021-06-26
猜你喜欢
  • 2021-05-31
  • 2022-12-23
  • 2022-12-23
  • 2021-06-21
  • 2021-06-23
  • 2021-10-20
  • 2022-12-23
相关资源
相似解决方案