list 介紹:
a = [1,2,3,4]
#a[0]是1,a[1]是2,即第一位為0
a.append(5) #將5加入list(a)尾端->[1,2,3,4,5]
len(a) #傳回a的數量,即 5
*如何將list中的值移除:
b =[1,2,4,2,5,1,5,3]
想移除其中的2
能使用b.pop(1)
or b.remove(2)
但這remove只能移除第一個2,並且兩者都使位置向前推進
所以想使兩個2都移除的話,如果使用:
for i in range(8):
if b[i] = 2:
b.pop(i) #這種方法是錯的,因為當第一個2被移除,其順序向前,將使得下一位數被跳過,
也使得,其後的a[x]錯位,找不到。
可利用從後方刪除:
for i in xrange(8):
j = 8 - i - 1
if b[j] = 2:
b.pop[j]#無向前推擠的疑慮(此法出自"小強學長必殺技!")
ditionary 介紹:
dit={'a':3,'b':4,'c':'k'}
可以如字典般查詢
dit['d']=7 #將'd':7加入dit內
sys介紹:
例如阿蒙學長使用ubutu(os:這........)
而我們使用windows
在路徑使用上差異很大,
如果直接寫入絕對路徑,在不同作業系統上會產生錯誤
所以使用sys來配合
re介紹:
正規表示式
split切割:
如果當有一字串'a>b'
當我想個別抓出a,b,c,d時,可使用split
>>> d='a>b'
>>> d.split('>')
['a', 'b']
程式邏輯:
Ex1:
a=3
a=b
b=5
a=?#答案仍然是3
Ex2:
a=[1,2]
b=a
b[0]=3
a=?#答案卻是[3,2]
差別為Ex1為數字 Ex2則為物件
物件相等則會使兩者相互變動
為了避免此種邏輯的影響,可利用copy模組:
from copy import *
a=[1,2]
b=copy(a)
b[0]=3#a還是[1,2]
又假設:
from copy import *
a=[1,2,[1,2]]
b=copy(a)
b[2][1]=3#a變成[1, 2, [1, 3]],因為a[2]仍為物件
可利用
deepcopy將此問題解決
Python 語言的編排是非常重要的,你研究一下如何在 blogger 中秀出好看的 Python 程式。如: http://hoamon.blogspot.com/2009/03/return-httpresponseredirect-by-post.html
回覆刪除> 程式邏輯:
回覆刪除> Ex1:
> a=3
> a=b
> b=5
> a=?#答案仍然是3
>
> Ex2:
> a=[1,2]
> b=a
> b[0]=3
> a=?#答案卻是[3,2]
>
> 差別為Ex1為數字 Ex2則為物件
> 物件相等則會使兩者相互變動
> 為了解決這問題,可利用copy模組:
> ...
這不是一個問題,這是 Python 語言的特性。它就是要這麼規範的。這不是缺點。詳情請看
http://hoamon.blogspot.com/search?q=python+%E5%8F%AF%E8%AE%8A%E7%89%A9%E4%BB%B6