關於Python的一些基礎操作
阿新 • • 發佈:2018-11-10
1.列表去重並且保持原來的順序
""" 有一個列表[11, 2, 3, 3, 7, 9, 11, 2, 3],去重並且保持原來的順序. """ numbers = [11, 2, 3, 3, 7, 9, 11, 2, 3] ret = list(set(numbers)) print(ret) ret.sort(key=numbers.index) # 按值在l1中的索引進行排序 print(ret)View Code
2.深淺拷貝和字典賦值
""" 問:執行完下面的程式碼後, l,m的內容分別是什麼? """ from copy importView Codedeepcopy def func(m): for k, v in m.items(): m[k+2] = v+2 # 不成立的,字典的key不能被改變 m = {1: 2, 3: 4} l = m # 淺拷貝 l2 = deepcopy(m) # 深拷貝 l[9] = 10 l2[90] = 100 # func(l) print(l) # l和m共享一塊記憶體空間,所以值會一起改變 print(m) print(l2) # 自己獨立開闢出一塊空間
3.模擬鏈式操作
"""View CodePython模擬鏈式操作示例 """ class Foo(object): def __init__(self, name, age): self.name = name self.age = age def wang(self): print("自信是件好事") return self def run(self): print("謙虛也是本分") return self f = Foo("小二哥", 18) # 生成一個例項,呼叫了__init__ f.wang().run() #連線呼叫 f1 = f.wang() # 單獨呼叫 f1.run()
4.%和format的區別
""" %和format的區別 """ c = (180, 180) command1 = "來人啊,把他給我倫了:敵人座標:%s" % (c,) # 不加逗號報錯 command2 = "來人啊,把他給我倫了:敵人座標:{}".format(c) class Person(object): def __init__(self, name, age): self.name = name self.age = age def __str__(self): return "{self.name} is {self.age} years old.".format(self=self) p = Person("小二哥", 18) print(p) # 下標 data = [11, 22] print("{0} --- {0}".format(data)) # 新增相同資料 print("{0[0]} --- {0[0]}".format(data)) # 等同於列表操作 print("{0[0]} --- {0[1]}".format(data)) print("{:>10}".format(18)) # 10個字元,不夠空格填充 print("{:0>10}".format(18)) # 10個字元,不夠0來填充 print("18".zfill(10)) print("{:A>10}".format(18)) # 10個字元,不夠A填充 print("{:.4f}".format(3.1415926)) # 保留4位小數 print("{:,}".format(1234567890)) # 3位資料之前逗號分隔,錢View Code
5.函式裡面可變物件不能做關鍵字引數
""" 可變物件不能做關鍵字引數 函式定義時生成一個空列表定義,值都會指向這個空列表 """ import random numbers = [11, 22, 33, 44, 55] print(numbers[8:]) # 列表切片超過列表本身range範圍返回[]空列表 random.shuffle(numbers) print(numbers) # 打亂列表的順序 def func(arg, li=[]): li.append(arg) return li list1 = func(21) print(list1) list2 = func(21, [1,]) print(list2) # 返回了一個新列表[1, 21] list3 = func(28) print(list3) # [21, 28]可是隻傳遞了一個引數 def foo(arg, ni=[]): return ni.append(arg) # 還沒有完成追加,返回空值 l1 = foo(21) print(l1) # None l2 = foo(21, [1,]) print(l2) # None l3 = foo(28) print(l3) # NoneView Code