關(guān)于python,你必須知道這25例python專屬騷技巧

本文我總結(jié)了25個(gè)python專屬騷操作廓旬,實(shí)屬提高效率/同事吹牛只利器哼审,確定不收藏嗎?

image.png

一孕豹、原地交換

Python 提供了一個(gè)直觀的在一行代碼中賦值與交換(變量值)的方法

x, y = 10, 20
print(x, y)

x, y = y, x
print(x, y)

#1 (10, 20)
#2 (20, 10)

原理:賦值的右側(cè)形成了一個(gè)新的元組涩盾,左側(cè)立即解析(unpack)那個(gè)(未被引用的)元組到變量 <a> 和 <b>。一旦賦值完成励背,新的元組變成了未被引用狀態(tài)并且被標(biāo)記為可被垃圾回收春霍,最終也完成了變量的交換。

二椅野、鏈狀比較操作符

Python不用很多條件一個(gè)一個(gè)寫终畅,比較操作符可以聚合籍胯。

n = 10
result = 1 < n < 20
print(result)

# True

result = 1 > n <= 9
print(result)

# False

三竟闪、三元操作符進(jìn)行條件賦值

三元操作符是 if-else 語句也就是條件操作符的一個(gè)快捷方式:[表達(dá)式為真的返回值] if [表達(dá)式] else [表達(dá)式為假的返回值]

這里給出一個(gè)你可以用來使代碼緊湊簡(jiǎn)潔的例子。下面的語句是說“如果 y 是 9杖狼,給 x 賦值 10炼蛤,不然賦值為 20”。

x = 10 if (y == 9) else 20

在列表推導(dǎo)中:

[m**2 if m > 10 else m**4 for m in range(50)]

判斷最小值:

def small(a, b, c):
    return a if a <= b and a <= c else (b if b <= a and b <= c else c)

類中:

x = (classA if y == 1 else classB)(param1, param2)

四蝶涩、多行字符串

這個(gè)比c方便多了理朋,c打上換行符再加上<typo id="typo-831" data-origin="轉(zhuǎn)義" ignoretag="true">轉(zhuǎn)義</typo>,真的很難受

a='''dvfssd
fsdfdsfsd
dsdsfbfdfasf
afasfaf'''
print(a)

五绿聘、in判斷

可以直接用來判斷某個(gè)變量是否在列表中

我們可以使用下面的方式來驗(yàn)證多個(gè)值:

if m in [1,3,5,7]:

而不是:

if m==1 or m==3 or m==5 or m==7:

六嗽上、 四種翻轉(zhuǎn)字符串/列表的方式

翻轉(zhuǎn)列表本身

testList = [1, 3, 5]
testList.reverse()
print(testList)
#-> [5, 3, 1]

在一個(gè)循環(huán)中翻轉(zhuǎn)并迭代輸出

for element in reversed([1,3,5]):
    print(element)

#1-> 5

#2-> 3

#3-> 1

一行代碼翻轉(zhuǎn)字符串

"Test Python"[::-1]

#輸出 “nohtyP tseT”

使用切片翻轉(zhuǎn)列表

[1, 3, 5][::-1]

#輸出 [5,3,1]。

七熄攘、一次性初始化多個(gè)變量

可以直接賦值:

a,b,c,d=1,2,3,4

可以利用列表:

List = [1,2,3]
x,y,z=List
print(x, y, z)
#-> 1 2 3

(元素個(gè)數(shù)應(yīng)與列表長度相同)

八兽愤、打印模塊路徑

import socketprint(socket)#<module 'socket' from '/usr/lib/python2.7/socket.py'>

九、字典推導(dǎo)

Python不光列表用推導(dǎo)式,字典/集合也有

#列表
l=[[0 for i in range(4)] for i in range(4)]#生成二維列表
print(l)
#  [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
testDict = {i: i * i for i in xrange(10)}
testSet = {i * 2 for i in xrange(10)}

print(testSet)
print(testDict)

#set([0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
#{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

十浅萧、拼接字符串

眾所周知逐沙,python中字符串可以相加:

a="i "
b="love "
c="you"
print(a+b+c)

拼接列表中的所有元素為一個(gè)字符串

l=['a','b','c']
print(''join(l))
#以join左邊的字符做分割

十一、循環(huán)枚舉索引

list = [10, 20, 30]
for i, value in enumerate(list):
    print(i, ': ', value)

#1-> 0 : 10
#2-> 1 : 20
#3-> 2 : 30

很方便<typo id="typo-2177" data-origin="的" ignoretag="true">的</typo>找到下標(biāo)和對(duì)應(yīng)元素

十二洼畅、返回多個(gè)值

并沒有太多編程語言支持這個(gè)特性吩案,然而 Python 中的方法確實(shí)(可以)返回多個(gè)值

def a():
    return 1,2,3,4,5

十三、開啟文件分享

Python 允許運(yùn)行一個(gè) HTTP 服務(wù)器來從根路徑共享文件帝簇,下面是開啟服務(wù)器的命令:

python3 -m http.server

上面的命令會(huì)在默認(rèn)端口也就是 8000 開啟一個(gè)服務(wù)器徘郭,你可以將一個(gè)自定義的端口號(hào)以最后一個(gè)參數(shù)的方式傳遞到上面的命令中。

十四己儒、調(diào)試腳本

我們可以在 <pdb> 模塊的幫助下在 Python 腳本中設(shè)置斷點(diǎn)崎岂,例子:

import pdb
pdb.set_trace()

十五、直接迭代序列元素

對(duì)序列(str闪湾、list冲甘、tuple等),直接迭代序列元素途样,比迭代元素的索引速度要更快江醇。

>>> l=[0,1,2,3,4,5]
>>> for i in l:
    print(i)
#快
>>> for i in range(len(l)):
    print(l[i])
#慢

十六、巧用else語句(重要)

python的else 子句不僅能在 if 語句中使用何暇,還能在 for陶夜、while 和 try 等語句中使用,這個(gè)語言特性不是什么秘密裆站,但卻沒有得到重視条辟。

for:
l=[1,2,3,4,5]
for i in l:
    if i=='6':
        print(666)
        break
else:
    print(999)

如果不這么實(shí)現(xiàn),我們只能設(shè)置一個(gè)變量來記錄了:

l=[1,2,3,4,5]
a=1
for i in l:
    if i=='6':
        print(666)
        a=0
        break
if a:
    print(999)

while和for類似

看一下try:

try:
    a()
except OSError:
    #語句1
else:
    #語句2

僅當(dāng) try 塊中沒有異常拋出時(shí)才運(yùn)行 else 塊宏胯。

總結(jié)一下else:

for:

僅當(dāng) for 循環(huán)運(yùn)行完畢時(shí)(即 for 循環(huán)沒有被 break 語句中止)才運(yùn)行 else 塊羽嫡。

while:

僅當(dāng) while 循環(huán)因?yàn)闂l件為假值而退出時(shí)(即 while 循環(huán)沒有被break 語句中止)才運(yùn)行 else 塊。

try:

僅當(dāng) try 塊中沒有異常拋出時(shí)才運(yùn)行 else 塊肩袍。

即杭棵,如果異常或者 return氛赐、break 或 continue 語句導(dǎo)致控制權(quán)跳到了復(fù)合語句的主塊之外魂爪,那么else 子句也會(huì)被跳過。

按正常的理解應(yīng)該是“要么運(yùn)行這個(gè)循環(huán)艰管,要么做那件事”滓侍。可是牲芋,在循環(huán)中撩笆,else 的語義恰好相反:“運(yùn)行這個(gè)循環(huán)尔破,然后做那件事〗匠模”

十七懒构、except的用法和作用

try/except: 捕捉由PYTHON自身或?qū)懗绦蜻^程中引發(fā)的異常并恢復(fù)

except: 捕捉所有其他異常

except name: 只捕捉特定的異常

except name, value: 捕捉異常及格外的數(shù)據(jù)(實(shí)例)

except (name1,name2) 捕捉列出來的異常

except (name1,name2),value: 捕捉任何列出的異常,并取得額外數(shù)據(jù)

else: 如果沒有引發(fā)異常就運(yùn)行

finally: 總是會(huì)運(yùn)行此處代碼

十八耘擂、Python自省

這個(gè)也是python彪悍的特性.自省就是面向?qū)ο蟮恼Z言所寫的程序在運(yùn)行時(shí),所能知道對(duì)象的類型.簡(jiǎn)單一句就是運(yùn)行時(shí)能夠獲得對(duì)象的類型.比如type(),dir(),getattr(),hasattr(),isinstance().

十九胆剧、python容器

列表:元素可變(任何數(shù)據(jù)類型),有序(可索引)醉冤,append/insert/pop秩霍;

元組:元素不可變,但元素中的可變?cè)厥强勺兊囊涎簦挥行颍伤饕┝迦蓿欢以M可以被散列,例如作為字典的鍵螺捐。

集合:無序(不可被索引)颠悬、互異

字典:無序,鍵值對(duì)(key:value)定血,key唯一不可重復(fù)

二十赔癌、map()

map()函數(shù)接收兩個(gè)參數(shù),一個(gè)是函數(shù)澜沟,一個(gè)是Iterable灾票,map將傳入的函數(shù)依次作用到序列的每個(gè)元素,并把結(jié)果作為新的Iterator返回茫虽。(重點(diǎn)理解)

舉例說明刊苍,比如我們有一個(gè)函數(shù)f(x)=x2,要把這個(gè)函數(shù)作用在一個(gè)list [1, 2, 3, 4, 5, 6, 7, 8, 9]上濒析,就可以用map()實(shí)現(xiàn)如下:

>>> def f(x):
...     return x * x
...
>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]

map()作為高階函數(shù)正什,事實(shí)上它把運(yùn)算規(guī)則抽象了,因此悼枢,我們不但可以計(jì)算簡(jiǎn)單的f(x)=x2埠忘,還可以計(jì)算任意復(fù)雜的函數(shù)脾拆,比如馒索,把這個(gè)list所有數(shù)字轉(zhuǎn)為字符串:

>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
['1', '2', '3', '4', '5', '6', '7', '8', '9']

二十一、reduce

reduce把一個(gè)函數(shù)作用在一個(gè)序列[x1, x2, x3, ...]上名船,這個(gè)函數(shù)必須接收兩個(gè)參數(shù)绰上,reduce把結(jié)果繼續(xù)和序列的下一個(gè)元素做累積計(jì)算

簡(jiǎn)單例子:

>>> from functools import reduce
>>> def fn(x, y):
        return x * 10 + y

>>> reduce(fn, [1, 3, 5, 7, 9])
13579

結(jié)合一下,我們可以自己寫出int()函數(shù)

from functools import reduce

a={'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

def charnum(s):
    return a[s]

def strint(s):
    return reduce(lambda x, y: x * 10 + y, map(charnum, s))

我們繼續(xù)說一些好用的函數(shù)

二十二渠驼、split

Python split() 通過指定分隔符對(duì)字符串進(jìn)行切片蜈块,如果參數(shù) num 有指定值,則僅分隔 num 個(gè)子字符串。

語法:

str.split(str="", num=string.count(str))

簡(jiǎn)化:

str.split("")

二十三百揭、理論結(jié)合實(shí)際

1)結(jié)合第四期所學(xué)知識(shí)爽哎,我們可以寫出這一行代碼

print(" ".join(input().split(" ")[::-1]))

實(shí)現(xiàn)功能,leetcode原題:給定一個(gè)句子(只包含字母和空格)器一,將句子中的單詞位置反轉(zhuǎn)课锌,單詞用空格分割,單詞之間只有一個(gè)空格祈秕,前后沒有空格渺贤。比如:(1)“hello xiao mi” - >“ mi xiao你好“

2)再舉一例:

將兩個(gè)整型數(shù)組按照升序合并,并且過濾掉重復(fù)數(shù)組元素

輸入?yún)?shù):

int* pArray1 :整型數(shù)組1
intiArray1Num:數(shù)組1元素個(gè)數(shù)
int* pArray2 :整型數(shù)組2
intiArray2Num:數(shù)組2元素個(gè)數(shù)

對(duì)于python來說请毛,給個(gè)數(shù)沒什么卵用志鞍。

a,b,c,d=input(),list(map(int,input().split())),input(),list(map(int,input().split()))
print("".join(map(str,sorted(list(set(b+d))))))

3)我們把最近的知識(shí)結(jié)合起來做一道題:

輸入一個(gè)int型整數(shù),按照從右向左的閱讀順序方仿,返回一個(gè)不含重復(fù)數(shù)字的新的整數(shù)固棚。

result=""
for i in input()[::-1]:
    if i not in result:
        result+=i
print(result)

還有很多具體的簡(jiǎn)潔操作,這里就不再舉例子了仙蚜,多體會(huì)吧玻孟。

好,我們繼續(xù)其它函數(shù)鳍征。

二十四黍翎、filter

Python內(nèi)建的filter()函數(shù)用于過濾序列。

和map()類似艳丛,filter()也接收一個(gè)函數(shù)和一個(gè)序列匣掸。和map()不同的是,filter()把傳入的函數(shù)依次作用于每個(gè)元素氮双,然后根據(jù)返回值是True還是False決定保留還是丟棄該元素碰酝。

簡(jiǎn)單例子,刪掉偶數(shù):

def is_odd(n):
    return n % 2 == 1

list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
# 結(jié)果: [1, 5, 9, 15]

我們可以用所學(xué)知識(shí)實(shí)現(xiàn)埃氏篩:

素?cái)?shù)基本(埃氏篩法)

(1)檢查n是否為素?cái)?shù)
最簡(jiǎn)單思路:所有可能的因數(shù)全部試一遍戴差。

int gg(int n)
{
for(int i=2;i<n;i++){
if((n%i)==0)return 0;//有因數(shù)就不是素?cái)?shù)咯
}
return 1;
}

進(jìn)一步思考:沒必要枚舉所有的數(shù)送爸,每一個(gè)小于n(1/2)的因數(shù)i,一定有一個(gè)大于n(1/2)的因數(shù)j與之對(duì)應(yīng)暖释,也就是i*j=n袭厂,所以枚舉小于等于n^(1/2)的因數(shù)即可

int gg(int n)
{
for(int i=2;i*i<=n;i++){
if((n%i)==0)return 0;
}
return 1;
}

(2)約數(shù)枚舉

上面已經(jīng)說過,不需要枚舉所有因數(shù)球匕,枚舉出某小因數(shù)以后算出對(duì)應(yīng)的大因數(shù)即可纹磺。

vector<int> gg(int n)
{
vector<int> a;
for(int i=2;i*i<=n;i++){
if((n%i)==0){
a.push_back(i);
if((n/i)!=i)a.push_back(n/i);//根號(hào)n的情況不要重復(fù)添加
}
}
return a;
}

(3)埃氏篩法

只對(duì)一個(gè)整數(shù)操作,O(N)亮曹,已經(jīng)足夠了橄杨,如果對(duì)許多整數(shù)進(jìn)行素性檢測(cè)秘症,還有更高效的算法,比如埃氏篩法式矫。

問題:枚舉n以內(nèi)所有素?cái)?shù)

操作:先把所有整數(shù)列出來乡摹,然后把2的倍數(shù)全部剔除,然后是三的采转,以此類推趟卸,遍歷所有素?cái)?shù),把倍數(shù)全部劃去氏义。

對(duì)于每個(gè)數(shù)字i锄列,如果沒被劃去,他一定是素?cái)?shù)惯悠,因?yàn)樗皇侨魏?到i-1數(shù)字的倍數(shù)邻邮。然后就開始劃它的倍數(shù)就好。

int a[maxx];
int b[maxx+1];
int gg(int n)
{
int p=0;//記錄素?cái)?shù)個(gè)數(shù)
for(int i=0;i<n+1;i++)b[i]=1;
b[0]=0;
b[1]=0;
//準(zhǔn)備完畢
for(int i=2;i<=n;i++){
if(b[i]){
a[p++]=i;//記錄素?cái)?shù)和個(gè)數(shù)
for(int j=2*i;j<=n;j+=i)b[j]=0;//剔除倍數(shù)
}
}
return p;//返回素?cái)?shù)個(gè)數(shù)
}

本代碼非原創(chuàng):

#先構(gòu)造一個(gè)從3開始的奇數(shù)序列:
def _odd_iter():
    n = 1
    while True:
        n = n + 2
        yield n
#這是一個(gè)生成器克婶,并且是一個(gè)無限序列筒严。

#篩選函數(shù)
def _not_divisible(n):
    return lambda x: x % n > 0
#生成器
def primes():
    yield 2
    it = _odd_iter() # 初始序列
    while True:
        n = next(it) # 返回序列的第一個(gè)數(shù)
        yield n
        it = filter(_not_divisible(n), it) # 構(gòu)造新序列

利用filter()不斷產(chǎn)生篩選后的新的序列

Iterator是惰性計(jì)算的序列,所以我們可以用Python表示“全體自然數(shù)”情萤,“全體素?cái)?shù)”這樣的序列鸭蛙,而代碼非常簡(jiǎn)潔。

二十五筋岛、sorted

>>> sorted([36, 5, -12, 9, -21])
[-21, -12, 5, 9, 36]
#可以接收一個(gè)key函數(shù)來實(shí)現(xiàn)自定義的排序娶视,例如按絕對(duì)值大小排序:
>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]

我們?cè)倏匆粋€(gè)字符串排序的例子:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'])
['Credit', 'Zoo', 'about', 'bob']

默認(rèn)情況下,對(duì)字符串排序睁宰,是按照ASCII的大小比較的肪获,由于'Z' < 'a',結(jié)果柒傻,大寫字母Z會(huì)排在小寫字母a的前面孝赫。

現(xiàn)在,我們提出排序應(yīng)該忽略大小寫红符,按照字母序排序青柄。要實(shí)現(xiàn)這個(gè)算法,不必對(duì)現(xiàn)有代碼大加改動(dòng)预侯,只要我們能用一個(gè)key函數(shù)把字符串映射為忽略大小寫排序即可致开。忽略大小寫來比較兩個(gè)字符串,實(shí)際上就是先把字符串都變成大寫(或者都變成小寫)雌桑,再比較喇喉。

這樣祖今,我們給sorted傳入key函數(shù)校坑,即可實(shí)現(xiàn)忽略大小寫的排序:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
['about', 'bob', 'Credit', 'Zoo']

要進(jìn)行反向排序拣技,不必改動(dòng)key函數(shù),可以傳入第三個(gè)參數(shù)reverse=True:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
['Zoo', 'Credit', 'bob', 'about']

從上述例子可以看出耍目,高階函數(shù)的抽象能力是非常強(qiáng)大的膏斤,而且,核心代碼可以保持得非常簡(jiǎn)潔邪驮。

sorted()也是一個(gè)高階函數(shù)莫辨。用sorted()排序的關(guān)鍵在于實(shí)現(xiàn)一個(gè)映射函數(shù)。

作者:兔兔RabbitMQR惴谩>诎瘛!
原文鏈接:https://blog.csdn.net/hebtu666/article/details/114872611

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末喻粹,一起剝皮案震驚了整個(gè)濱河市蟆融,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌守呜,老刑警劉巖型酥,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異查乒,居然都是意外死亡弥喉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門玛迄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來由境,“玉大人,你說我怎么就攤上這事蓖议≡逡蓿” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵拒担,是天一觀的道長嘹屯。 經(jīng)常有香客問我,道長从撼,這世上最難降的妖魔是什么州弟? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮低零,結(jié)果婚禮上婆翔,老公的妹妹穿的比我還像新娘。我一直安慰自己掏婶,他們只是感情好啃奴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著雄妥,像睡著了一般最蕾。 火紅的嫁衣襯著肌膚如雪依溯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天瘟则,我揣著相機(jī)與錄音黎炉,去河邊找鬼。 笑死醋拧,一個(gè)胖子當(dāng)著我的面吹牛慷嗜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丹壕,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼庆械,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了菌赖?” 一聲冷哼從身側(cè)響起干奢,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎盏袄,沒想到半個(gè)月后忿峻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辕羽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年逛尚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刁愿。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绰寞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出铣口,到底是詐尸還是另有隱情滤钱,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布脑题,位于F島的核電站件缸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏叔遂。R本人自食惡果不足惜他炊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望已艰。 院中可真熱鬧贩挣,春花似錦手幢、人聲如沸灿里。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至盒件,卻和暖如春蹬碧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背履恩。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工锰茉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呢蔫,地道東北人切心。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像片吊,于是被迫代替她去往敵國和親绽昏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容