① python 在for循環裡面成功改變list,退出for循環後list卻沒變
python裡面字元串是不可修改的,所以傳值的時候並不是把Image[i]這個對象傳給了i,而是傳過去的復制值,所以你修改的只是i這個變數不是對應的Image[i]
要麼改得復雜點改成這樣:
print ''
print Images
print ''
for i in range(len(Images)):
print Images[i]
Images[i] = 'http://www.somesite.com' + Images[i]
print Images[i]
print ''
for i in Images:
print i
if 'http' in i:
print 'True'
else:
print 'False'
② python函數中傳入list為啥會這樣,這破問題卡了一整天
代碼及運行結果如圖:
從你的問題來看是一個新手,建議直接放棄2.x版本學習3.x版本。對現在的你來說用到的2與3版本之間的差異可能也就是print(如圖中所示與你代碼的差異),影響很小。
代碼解釋:
你的代碼中用A,B = inputlist,inputlist進行賦值,實際A與B都是指向了同一個內存對象,所以對其中任意一個做出修改,即修改了內存中的這個對象,造成A與B同時修改。解決方法,引入模塊中的deep()函數,保證A與B指向長的一樣但在內存中是兩個對象,這樣對其中一個修改時完全不影響到另一個。
③ Python 中的列表 List 是可以改變的, 元組 Tuple 是不可以改變的, 那什麼情況下要用到 tuple 呢
Tuple 是不可變 list。 一旦創建了一個 tuple 就不能以任何方式改變它。
Tuple 與 list 的相同之處
定義 tuple 與定義 list 的方式相同, 除了整個元素集是用小括弧包圍的而不是方括弧。
Tuple 的元素與 list 一樣按定義的次序進行排序。 Tuples 的索引與 list 一樣從 0 開始, 所以一個非空 tuple 的第一個元素總是 t[0]。
負數索引與 list 一樣從 tuple 的尾部開始計數。
與 list 一樣分片 (slice) 也可以使用。注意當分割一個 list 時, 會得到一個新的 list ;當分割一個 tuple 時, 會得到一個新的 tuple。
Tuple 不存在的方法
您不能向 tuple 增加元素。Tuple 沒有 append 或 extend 方法。
您不能從 tuple 刪除元素。Tuple 沒有 remove 或 pop 方法。
您不能在 tuple 中查找元素。Tuple 沒有 index 方法。
然而, 您可以使用 in 來查看一個元素是否存在於 tuple 中。
用 Tuple 的好處
Tuple 比 list 操作速度快。如果您定義了一個值的常量集,並且唯一要用它做的是不斷地遍歷它,請使用 tuple 代替 list。
如果對不需要修改的數據進行 「防寫」,可以使代碼更安全。使用 tuple 而不是 list 如同擁有一個隱含的 assert 語句,說明這一數據是常量。如果必須要改變這些值,則需要執行 tuple 到 list 的轉換。
Tuple 與 list 的轉換
Tuple 可以轉換成 list,反之亦然。內置的 tuple 函數接收一個 list,並返回一個有著相同元素的 tuple。而 list 函數接收一個 tuple 返回一個 list。從效果上看,tuple 凍結一個 list,而 list 解凍一個 tuple。
Tuple 的其他應用
一次賦多值
>>> v = ('a', 'b', 'e')
>>> (x, y, z) = v
解釋:v 是一個三元素的 tuple, 並且 (x, y, z) 是一個三變數的 tuple。將一個 tuple 賦值給另一個 tuple, 會按順序將 v 的每個值賦值給每個變數。
④ Python裡面如何實現tuple和list的轉換
list(列表):list是一種有序的集合,可以隨時添加和刪除其中的元素。
tuple(元祖):tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學的名字:
python3下運行
list和tuple是Python內置的有序集合,一個可變,一個不可變。
⑤ python涓璴ist鐨勭敤娉
Python涓鐨勫垪琛錛圠ist錛夋槸涓縐嶆湁搴忕殑闆嗗悎錛屽畠鍏佽告偍瀛樺偍澶氫釜欏圭洰錛堥氬父鏄鍚屼竴縐嶇被鍨嬶級騫跺瑰叾榪涜屾搷浣溿傚垪琛ㄥ湪Python涓闈炲父甯歌侊紝騫朵笖鏄澶勭悊澶ч噺鏁版嵁鐨勬湁鏁堟柟寮忋
鍒涘緩鍒楄〃:
鍙浠ヤ嬌鐢ㄦ柟鎷鍙峰拰閫楀彿鏉ュ壋寤哄垪琛錛
my_list = [1, 2, 3, 4, 5]
涓婅堪浠g爜鍒涘緩浜嗕竴涓鍖呭惈鏁板瓧1鍒5鐨勫垪琛ㄣ傛偍涔熷彲浠ヤ嬌鐢ㄦ柟鎷鍙峰拰閫楀彿鏉ュ壋寤虹┖鍒楄〃錛
empty_list = []
璁塊棶鍒楄〃鍏冪礌:
鎮ㄥ彲浠ヤ嬌鐢ㄦ柟鎷鍙峰拰緔㈠紩鏉ヨ塊棶鍒楄〃涓鐨勫厓緔犮傜儲寮曟槸浠0寮濮嬬殑錛屽洜姝ょ涓涓鍏冪礌鐨勭儲寮曟槸0錛岀浜屼釜鍏冪礌鐨勭儲寮曟槸1錛屼緷姝ょ被鎺ㄣ備緥濡傦細
first_element = my_list[0] # 璁塊棶鍒楄〃涓鐨勭涓涓鍏冪礌
淇鏀瑰垪琛ㄥ厓緔:
鎮ㄥ彲浠ヤ嬌鐢ㄨ祴鍊兼搷浣滄潵淇鏀瑰垪琛ㄤ腑鐨勫厓緔犮備緥濡傦細
my_list[2] = 'a' # 灝嗙涓変釜鍏冪礌淇鏀逛負瀛楃'a'
娣誨姞鍏冪礌鍒板垪琛:
鍙浠ヤ嬌鐢╝ppend()鏂規硶鎴杄xtend()鏂規硶灝嗗厓緔犳坊鍔犲埌鍒楄〃鐨勬湯灝俱俛ppend()鏂規硶灝嗗厓緔犳坊鍔犲埌鍒楄〃鐨勬湯灝撅紝鑰宔xtend()鏂規硶灝嗕竴涓搴忓垪鐨勬墍鏈夊厓緔犳坊鍔犲埌鍒楄〃鐨勬湯灝俱備緥濡傦細
my_list.append(6) # 灝嗘暟瀛6娣誨姞鍒板垪琛ㄦ湯灝 my_list.extend([7, 8]) # 灝嗘暟瀛7鍜8娣誨姞鍒板垪琛ㄦ湯灝
鍒犻櫎鍒楄〃鍏冪礌:
鎮ㄥ彲浠ヤ嬌鐢╮emove()鏂規硶鎴杙op()鏂規硶浠庡垪琛ㄤ腑鍒犻櫎鍏冪礌銆俽emove()鏂規硶鏍規嵁鍏冪礌鐨勫間負鍒楄〃涓鐨勫厓緔狅紝鑰宲op()鏂規硶鍙浠ユ帴鍙椾竴涓鍙閫夌殑緔㈠紩鍙傛暟錛屼互鎸囧畾瑕佸垹闄ょ殑鍏冪礌鐨勭儲寮曘備緥濡傦細
my_list.remove(3) # 浠庡垪琛ㄤ腑鍒犻櫎鍏冪礌3 my_list.pop(1) # 浠庡垪琛ㄤ腑鍒犻櫎騫惰繑鍥炵浜屼釜鍏冪礌錛堢儲寮曚負1錛
鍒楄〃鍒囩墖:
鍙浠ヤ嬌鐢ㄥ垏鐗囪娉曚粠鍒楄〃涓鎻愬彇瀛愰泦銆備緥濡傦細
sub_list = my_list[2:5] # 鎻愬彇浠庣涓変釜鍏冪礌鍒扮浜斾釜鍏冪礌錛堜笉鍖呮嫭絎浜斾釜鍏冪礌錛夌殑瀛愰泦
鍒楄〃鎺掑簭:
鍙浠ヤ嬌鐢╯ort()鏂規硶鎴杝orted()鍑芥暟瀵瑰垪琛ㄨ繘琛屾帓搴忋俿ort()鏂規硶浼氫慨鏀瑰師濮嬪垪琛錛岃宻orted()鍑芥暟浼氳繑鍥炰竴涓鏂扮殑宸叉帓搴忓垪琛ㄣ備緥濡傦細
my_list.sort() # 瀵瑰垪琛ㄨ繘琛屾帓搴忥紙宸蹭慨鏀瑰師濮嬪垪琛錛 sorted_list = sorted(my_list) # 榪斿洖涓涓鏂扮殑宸叉帓搴忓垪琛錛堜笉淇鏀瑰師濮嬪垪琛錛 浠ヤ笂灝辨槸Python涓鍒楄〃鐨勪竴浜涘熀鏈鐢ㄦ硶銆傚垪琛ㄦ槸涓涓闈炲父鏈夌敤鐨勬暟鎹緇撴瀯錛屽彲鐢ㄤ簬瀛樺偍鍜岀$悊澶ч噺鐨勬暟鎹銆傚湪澶勭悊澶嶆潅鐨勬暟鎹鏃訛紝鍒楄〃鏄疨ython涓涓涓闈炲父鏈夌敤鐨勫伐鍏楓
⑥ Python中list,tuple,dict,set的區別和用法
1、list、tuple是有序列表;dict、set是無序列表
2、list元素可變、tuple元素不可變
3、dict和set的key值不可變,唯一性
4、set只有key沒有value
5、set的用途:去重、並集、交集等
6、list、tuple:+、*、索引、切片、檢查成員等
7、dict查詢效率高,但是消耗內存多;list、tuple查詢效率低、但是消耗內存少