序列的+、+=和extend的區別
實現可切片的物件
列表推導試、生成器表示式、字典推導式
list、tuble、deque
str、bytes、bytearray(陣列,只能放置同一種資料型別)、array.array
list、deque、bytearray、array
str、tuble、bytes
# +
a = [1, 3, 4]
c = a + [4, 5, 6]
print(c)
# 輸出結果 [1, 3, 4, 4, 5, 6]
# +=
a +=[5, 6, 7]
# a +=(5, 6, 7) 加的引數可以是任意序列型別
# += 實際上呼叫的是extend(value) 該函式的引數是乙個可迭代的物件 該函式沒有返回值
print(a)
# 輸出結果 [1, 3, 4, 5, 6, 7]
#模式 [start:end:step]
""" 其中,第乙個數字start表示切片開始位置,預設為0
第二個數字end表示切片截止(但不包括)位置(預設為列表長度)
第三個數字step表示切片的步長(預設為1)
當start為0時可以省略,當end為列表長度時可以省略
當step為1時可以省略,並且省略步長時可以同時省略最後乙個冒號
另外,當step為負整數時,表示反向切片,這是start應該比end的值要大才行
"""alist = [3, 4, 5, 6, 6, 7]
print(alist[::]) # 返回包含原列表中所有元素的新列表
# 輸出結果 [3, 4, 5, 6, 6, 7]
print(alist[1:3]) # 擷取從位置1開始到位置3之間的元素。(包括1,但是不包括3)
# 輸出結果 [4, 5]
print(alist[::-1]) # 返回包含原列表中所有元素的逆序列表
# 輸出結果 [7, 6, 6, 5, 4, 3]
print(alist[::2]) # 隔乙個取乙個,獲取偶數字置的元素
# 輸出結果 [3, 5, 6]
print(alist[1::2]) # 隔乙個取乙個,獲取奇數字置的元素
# 輸出結果 [4, 6, 7]
print(alist[:100]) # 切片結束位置大於列表的長度時,從列表尾部截斷
# 輸出結果 [3, 4, 5, 6, 6, 7]
print(alist[100:]) # 切片開始位置大於列表長度時,返回空列表
# 輸出結果
print(alist[:2:-1]) # 從尾部-1位置開始到2位置
# 輸出結果 [7, 6, 6]
alist[len(alist):] = [9] # 在列表的尾部新增元素
alist[:0] = [1, 3] # 在列表的頭部插入元素
alist[3:3] = [1] # 在3的位置插入元素
alist[:3] = [1, 3] # 替換0-2位置的元素,等號兩邊的列表長度相等
alist[3:] = [1, 3] # 替換從3位置開始的元素,等號兩邊的列表長度可以不相等
alist[::2] = [1, 3] # 隔乙個修改乙個元素,左側切片不連續,等號兩邊列表長度必須相等
alist[:3] = # 刪除列表前三個元素
定義乙個可序列化的類,並實現切片後返回的仍是乙個類
import numbers
class group:
#支援切片操作
def __init__(self, group_name, company_name, staffs):
self.group_name = group_name
self.company_name = company_name
self.staffs = staffs
def __reversed__(self):
self.staffs.reverse()
def __getitem__(self, item):
cls = type(self)
if isinstance(item, slice):
return cls(group_name=self.group_name, company_name=self.company_name, staffs=self.staffs[item])
elif isinstance(item, numbers.integral):
return cls(group_name=self.group_name, company_name=self.company_name, staffs=[self.staffs[item]])
def __len__(self):
return len(self.staffs)
def __iter__(self):
return iter(self.staffs)
def __contains__(self, item):
if item in self.staffs:
return true
else:
return false
staffs = ["bobby1", "imooc", "bobby2", "bobby3"]
group = group(company_name="imooc", group_name="user", staffs=staffs)
sun_group = group[::2]
print(sun_group.staffs)
reversed(group)
for user in group:
print(user)
#列表推導式
# 提取出1-20之間的奇數
odd_list = [i for i in range(21) if i%2 == 1]
print(odd_list)
# 邏輯複雜的情況
def hadle_item(item):
return item * item
odd_list = [hadle_item(i) for i in range(21) if i%2 == 1]
print(odd_list)
#生成器表示式
odd_list = (i for i in range(21) if i%2 == 1)
print(type(odd_list)) #型別是並不是set
for odd in odd_list:
print(odd)
#字典推導式
#將key value交替
my_dist =
reversed_dist =
print(reversed_dist)
python 自定義序列
def checkindex key if key 0 raise indexerror if not isinstance key,int long raise typeerror class numberqueue def init self,start 0,step 1 self.start ...
mysql 自定義序列
原文 mysql主鍵不用自增數字的時候,可以參考如下方式,我抄來的。建立公共的序列表 drop table ifexists t common sequence create table t common sequence seq name varchar 100 not null comment ...
自定義異常類
自定義並捕獲 一 第一種定義方式,繼承exception類 public class myfirstexception extends exception public myfirstexception string msg public myfirstexception string msg,th...