国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[Learning Python] Chapter 8 Lists and Dictionaries

gekylin / 401人閱讀

摘要:,如何一個(gè)方法一使用方法二使用方法方法三使用方法,按升序或降序排列表示升序表示降序和會(huì)返回。而僅能刪除一個(gè)。使用方法可以避免這樣的錯(cuò)誤導(dǎo)致程序出現(xiàn)。,在中,的方法返回的不再是。不過(guò)可以使用強(qiáng)迫它們組成一個(gè)。

Chapter 8 Lists and Dictionaries
1, list的concatenation 和 repetition 操作:

>>> [1, 2, 3] + [4, 5, 6] # Concatenation
[1, 2, 3, 4, 5, 6]
>>> ["Ni!"] * 4 # Repetition
["Ni!", "Ni!", "Ni!", "Ni!"]

2,list是mutable sequence,可以做in place assignment.
A, 單一賦值:

>>> L = ["spam", "Spam", "SPAM!"]
>>> L[1] = "eggs" # Index assignment
>>> L
["spam", "eggs", "SPAM!"]

B,用slice給多個(gè)item賦值

>>> L[0:2] = ["eat", "more"] # Slice assignment: delete+insert
>>> L # Replaces items 0,1
["eat", "more", "SPAM!"]

雖然[0:2]僅包含2個(gè)item,但是,重新賦值的時(shí)候可以賦給不止2個(gè),或者少于2個(gè),其實(shí)應(yīng)該這樣認(rèn)識(shí)slice assignment:
Step 1:將slice里面的items刪除;
Step 2:將要賦值的新的sublist插入。
所以刪除的item的個(gè)數(shù)可以和插入的item的個(gè)數(shù)不一致。

3,如何extend一個(gè)list?
方法一:使用slice assignment:

>>> L
[2, 3, 4, 1]

>>> L[len(L):] = [5, 6, 7] # Insert all at len(L):, an empty slice at end
>>> L
[2, 3, 4, 1, 5, 6, 7]

方法二:使用extend方法

>>> L.extend([8, 9, 10]) # Insert all at end, named method
>>> L
[2, 3, 4, 1, 5, 6, 7, 8, 9, 10]

方法三:使用append方法

>>> L = ["eat", "more", "SPAM!"]
>>> L.append("please") # Append method call: add item at end
>>> L
["eat", "more", "SPAM!", "please"]

4,sort()按升序或降序排列

L = [2, 3, 4, 1]
L.sort()  #表示升序
L
[1, 2, 3, 4]
L.sort(reverse = True) #表示降序
L
[4, 3, 2, 1]

Sort和 append會(huì)返回None。所以把他們賦給其他變量,否則那個(gè)變量將變?yōu)镹one。

5,有一個(gè)sorted函數(shù)也可以做這樣的事情,并返回一個(gè)list:

>>> L = ["abc", "ABD", "aBe"]
>>> sorted([x.lower() for x in L], reverse=True) # Pretransform items: differs!
["abe", "abd", "abc"]

6,reverse可以用來(lái)倒序:

>>> L
[1, 2, 3, 4]
>>> L.reverse() # In-place reversal method
>>> L
[4, 3, 2, 1]
>>> list(reversed(L)) # Reversal built-in with a result (iterator)
[1, 2, 3, 4]

7,index, insert, remove, pop, count

>>> L = ["spam", "eggs", "ham"]
>>> L.index("eggs") # Index of an object (search/find)
1
>>> L.insert(1, "toast") # Insert at position
>>> L
["spam", "toast", "eggs", "ham"]
>>> L.remove("eggs") # Delete by value 
>> L
["spam", "toast", "ham"]
>>> L.pop(1) # Delete by position
"toast"
>>> L
["spam", "ham"]
>>> L.count("spam") # Number of occurrences
1

8, del函數(shù)不僅可以刪除一個(gè)item,還可以刪除一個(gè)section。

>>> L = ["spam", "eggs", "ham", "toast"]
>>> del L[0] # Delete one item
>>> L
["eggs", "ham", "toast"]
>>> del L[1:] # Delete an entire section
>>> L # Same as L[1:] = []
["eggs"]

而remove僅能刪除一個(gè)item。

9,給某個(gè)section賦值一個(gè)空List,也就相當(dāng)于刪除該section:L[i:j]=[]

10,dictionary使用key來(lái)index:

>>> D = {"spam": 2, "ham": 1, "eggs": 3} # Make a dictionary
>>> D["spam"] # Fetch a value by key
2
>>> D # Order is "scrambled"
{"eggs": 3, "spam": 2, "ham": 1}

11,dictionary的keys方法返回dictionary的所有key 值:

>>> len(D) # Number of entries in dictionary
3
>>> "ham" in D # Key membership test alternative
True
>>> list(D.keys()) # Create a new list of D"s keys
["eggs", "spam", "ham"]

#可以不用list()方法,因?yàn)樵赑ython 2.x keys的值本來(lái)就是list

12,在dictionary中,給一個(gè)key賦值新的value:

>>> D
{"eggs": 3, "spam": 2, "ham": 1}
>>> D["ham"] = ["grill", "bake", "fry"] # Change entry (value=list)
>>> D
{"eggs": 3, "spam": 2, "ham": ["grill", "bake", "fry"]}

13, 刪除某個(gè)entry,通過(guò)key

>>> del D["eggs"] # Delete entry
>>> D
{"spam": 2, "ham": ["grill", "bake", "fry"]}

14,增加一個(gè)新的entry:

>>> D["brunch"] = "Bacon" # Add new entry
>>> D
{"brunch": "Bacon", "spam": 2, "ham": ["grill", "bake", "fry"]}

15,dictionary的values()方法返回dictionary的所有values

>>> D = {"spam": 2, "ham": 1, "eggs": 3}
>>> list(D.values()) #可以不用list()方法,因?yàn)镈.values()的值本來(lái)就是list
[3, 2, 1]

16,dictionary的items()方法返回dictionary的所有key=value tuple,返回的是一個(gè)list。

>>> list(D.items())
[("eggs", 3), ("spam", 2), ("ham", 1)]

17,有時(shí)候不確定dictionary是否有某個(gè)key,而如果仍然有之前的index方法來(lái)獲取,可能引起程序error退出。使用get方法可以避免這樣的錯(cuò)誤導(dǎo)致程序出現(xiàn)error。
如果沒(méi)有某個(gè)key,get會(huì)返回None,而如果不想讓程序提示None,可以在第二個(gè)參數(shù)填入想要輸出的內(nèi)容,如下:

>>> D.get("spam") # A key that is there
2
>>> print(D.get("toast")) # A key that is missing
None
>>> D.get("toast", 88)
88

18,dictionary有一個(gè)update方法,可以將一個(gè)dictionary加入到另外一個(gè)dictionary中,將D2加入到D中。應(yīng)該注意的是,如果它們有相同的keys,那么D中重復(fù)的key所對(duì)應(yīng)的值將被D2的key所對(duì)應(yīng)的值覆蓋。

>>> D
{"eggs": 3, "spam": 2, "ham": 1}
>>> D2 = {"toast":4, "muffin":5} # Lots of delicious scrambled order here
>>> D.update(D2)
>>> D
{"eggs": 3, "muffin": 5, "toast": 4, "spam": 2, "ham": 1}

19,dictionary的pop方法,填入的參數(shù)是key,返回的值是value,被pop執(zhí)行的entry被移除出dictionary。

20,如何遍歷一個(gè)dictionary? 可以用for-in loop:
方法一: for key in D
方法二: for key in D.keys()

21, 如果想要根據(jù)value來(lái)獲得key,可以參考下面的例子:

D = {"spam": 2, "ham": 1, "egg": 3}
E = {"spam": 4, "toast": 3, "hamburger": 5}
D.update(E)
#print D

some_food = [key for (key, value) in D.items() if value == 3]

print some_food

如上面斜體的表達(dá)式,將返回list。如果這個(gè)value對(duì)應(yīng)多個(gè)key,則返回的list將有多個(gè)item,如果僅有一個(gè)key,那么這個(gè)list將只有一個(gè)值,此時(shí)可以用list[0]來(lái)將中括號(hào)去除。

22,作為key的值得類(lèi)型可以是string、integer、float、tuple等不會(huì)改變的值, 用戶自己定義的object也能作為key,只要它們是hashable并且不會(huì)改變的。像list、set、dictionary等這些會(huì)變的type不能作為dictionary的key。

23,下面這個(gè)例子闡述了tuple類(lèi)型的key在坐標(biāo)問(wèn)題中的作用:

>>> Matrix = {}
>>> Matrix[(2, 3, 4)] = 88
>>> Matrix[(7, 8, 9)] = 99
>>>
>>> X = 2; Y = 3; Z = 4 # ; separates statements: see Chapter 10
>>> Matrix[(X, Y, Z)]
88
>>> Matrix
{(2, 3, 4): 88, (7, 8, 9): 99}

24,創(chuàng)建dictionary的幾個(gè)方法:
方法一:傳統(tǒng)的方法

{"name": "Bob", "age": 40} # Traditional literal expression

方法二:逐一賦值

D = {} # Assign by keys dynamically
D["name"] = "Bob"
D["age"] = 40

方法三:通過(guò)dict函數(shù)創(chuàng)建,注意,使用這種方法,key只能是string

dict(name="Bob", age=40) # dict keyword argument form

方法四:將key/value作為一個(gè)tuple,再用[]括起來(lái),寫(xiě)進(jìn)dict()中,這種比較少用到

dict([("name", "Bob"), ("age", 40)]) # dict key/value tuples form

方法五:使用zip()函數(shù)

dict(zip(keyslist, valueslist)) # Zipped key/value tuples form (ahead)

方法六:使用fromkeys函數(shù),很少用到

>>> dict.fromkeys(["a", "b"], 0)
{"a": 0, "b": 0}

25,使用dictionary comprehensions來(lái)創(chuàng)建dictionary的例子:
25.1 別忘了冒號(hào)。。

>>> D = {x: x ** 2 for x in [1, 2, 3, 4]} # Or: range(1, 5)
>>> D
{1: 1, 2: 4, 3: 9, 4: 16}

25.2

>>> D = {c: c * 4 for c in "SPAM"} # Loop over any iterable
>>> D
{"S": "SSSS", "P": "PPPP", "A": "AAAA", "M": "MMMM"}

25.3

>>> D = {c.lower(): c + "!" for c in ["SPAM", "EGGS", "HAM"]}
>>> D
{"eggs": "EGGS!", "spam": "SPAM!", "ham": "HAM!"}

25.4

>>> D = {k:0 for k in ["a", "b", "c"]} # Same, but with a comprehension
>>> D
{"b": 0, "c": 0, "a": 0}

26,在Python 3.x中,dictionary的keys()方法返回的不再是list。而是類(lèi)似像set一樣的結(jié)構(gòu)。不過(guò)可以使用list()強(qiáng)迫它們組成一個(gè)list。

>>> D = dict(a=1, b=2, c=3)
>>> D
{"b": 2, "c": 3, "a": 1}
>>> K = D.keys() # Makes a view object in 3.X, not a list
>>> K
dict_keys(["b", "c", "a"])
>>> list(K) # Force a real list in 3.X if needed
["b", "c", "a"]

它們具有交集、并集、等set所具有的運(yùn)算:

>>> D = {"a": 1, "b": 2, "c": 3}
>>> D.keys() & D.keys() # Intersect keys views
{"b", "c", "a"}
>>> D.keys() & {"b"} # Intersect keys and set
{"b"}
>>> D.keys() & {"b": 1} # Intersect keys and dict
{"b"}

27,練習(xí)題:用兩種方法創(chuàng)建一個(gè)list,這個(gè)list包含5個(gè)0:
方法一:
[0,0,0,0,0]
方法二:
[0 for i in range(5)]
方法三:
[0] * 5
方法四:
用循環(huán)加append的方法

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/38326.html

相關(guān)文章

  • [Learning Python] Chapter 4. Introducing Python Ob

    摘要:可以連接,可以重復(fù)可以將兩個(gè)連接在一起可以重復(fù)任意次數(shù)如中,號(hào)作用于表示連接,而作用于數(shù)字表示加法,操作符的作用會(huì)根據(jù)其作用的對(duì)象而有所適應(yīng)。中的對(duì)象被分類(lèi)為和。針對(duì)的核心類(lèi)型,數(shù)字字符串和都是的。 1, >>> len(str(3)) 結(jié)果是1,len不能對(duì)數(shù)字求值,需要先將數(shù)字轉(zhuǎn)換為str 2, math模塊中,有許多工具可以用來(lái)計(jì)算數(shù)學(xué)問(wèn)題。使用math模塊,先導(dǎo)入math: i...

    CHENGKANG 評(píng)論0 收藏0
  • Awesome Python II

    摘要: Caching Libraries for caching data. Beaker - A library for caching and sessions for use with web applications and stand-alone Python scripts and applications. dogpile.cache - dogpile.cache...

    lx1036 評(píng)論0 收藏0
  • 8步從Python白板到專家,從基礎(chǔ)到深度學(xué)習(xí)

    摘要:去吧,參加一個(gè)在上正在舉辦的實(shí)時(shí)比賽吧試試你所學(xué)到的全部知識(shí)微軟雅黑深度學(xué)習(xí)終于看到這個(gè),興奮吧現(xiàn)在,你已經(jīng)學(xué)到了絕大多數(shù)關(guān)于機(jī)器學(xué)習(xí)的技術(shù),是時(shí)候試試深度學(xué)習(xí)了。微軟雅黑對(duì)于深度學(xué)習(xí),我也是個(gè)新手,就請(qǐng)把這些建議當(dāng)作參考吧。 如果你想做一個(gè)數(shù)據(jù)科學(xué)家,或者作為一個(gè)數(shù)據(jù)科學(xué)家你想擴(kuò)展自己的工具和知識(shí)庫(kù),那么,你來(lái)對(duì)地方了。這篇文章的目的,是給剛開(kāi)始使用Python進(jìn)行數(shù)據(jù)分析的人,指明一條全...

    Zachary 評(píng)論0 收藏0
  • [Learning Python] Chapter 6: The Dynamic Typing In

    摘要:,可以對(duì)對(duì)象進(jìn)行自動(dòng)地回收。如下,這種情況的發(fā)生表示隨改變了,應(yīng)該意識(shí)到這個(gè)問(wèn)題。代表引用相同則返回,否則,返回。這個(gè)判斷會(huì)更加嚴(yán)格。的值為的兩個(gè)量,其必定也是。,和指向了不同的。,由于會(huì)存儲(chǔ)一些小的和小的以方便重新利用。 1, 在Python中,類(lèi)型永遠(yuǎn)跟隨object,而非variable。Variable沒(méi)有類(lèi)型。 2,在下面的三個(gè)式子中,a首先被賦予整形3,再被賦予字符串‘sp...

    lily_wang 評(píng)論0 收藏0
  • [Learning Python] Chapter 7 String Fundamentals

    摘要:此時(shí)不要在這里面的右邊加入,否則會(huì)被當(dāng)做。,這個(gè)式子可以將二進(jìn)制數(shù),轉(zhuǎn)換為十進(jìn)制的。需要注意的是,需要加上,表示。下面,表示括號(hào)內(nèi)的第一個(gè)參數(shù),表示第二個(gè)參數(shù)。 1, 字符串的連接concatenate有兩種方式:A:直接寫(xiě)在一起: >>> title = Meaning of Life # Implicit concatenation >>> title Meaning of L...

    baoxl 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<