列表格式:name = []name = [name1, name2, name3, name4, name5] #針對列表的操作 #增加 add #刪除 delete #查詢 select #更改 update #列表copy分為深copy和淺copy 深copy 會把列表裡的子列表 copy過去 ...
列表
格式:name = []
name = [name1, name2, name3, name4, name5]
#針對列表的操作
name.index("name1")#查詢指定數值的下標值 name.count("name1")#查詢指定數值的總數 name.clear("name")#清空列表 name.reverse("name")#反轉列表數值 name.sort("name")#排序,優先順序 特殊字元-數字-大寫字母-小寫字母 name.extend("name1")#擴展。把另一個列表的值增加到當前列表
#增加 add
name.append("name5")#追加 name.insert(1, "name1.5")#插入指定位置
#刪除 delete
name.remove("name1")#根據人名刪除 del name[0]#根據下標刪除列表裡的值 del name #刪除列表 name.pop(0)#刪除指定下標的值,預設是最後一個
#查詢 select
print(name[0], name[2])#根據下標讀取 print(name[0:2]) == print(name[:2])#切片 (連續的一段:顧頭不顧尾,0和-1都可以省略) print(name[-1])#-1 獲取最後一個位置的值 print(name[-2:])#獲取最後兩個值,從前往後數最後一個是-1、依次是-3、-2、-1
#更改 update
name[1] = "name1.5"#更改指定下標的值
#列表copy分為深copy和淺copy
深copy 會把列表裡的子列表 copy過去
name = ["name1", "name2", "name3", "name4", ["name5", "name6"]] name1 = copy.deepcopy(name) name[4][1] = "name7" name[1] = "name2.1" print(name) print(name1)
result(結果)
['name1', 'name2.1', 'name3', 'name4', ['name5', 'name7']] ['name1', 'name2', 'name3', 'name4', ['name5', 'name6']]
淺copy 只會copy列表的第一層,如果新文件子列表裡的數值更改,老文件子列表的值不會更改
name = ["name1", "name2", "name3", "name4", ["name5", "name6"]] name1 = name.copy() = copy.copy(name) = name[:] = list(name) name[4][1] = "name7" name[1] = "name2.1" print(name) print(name1)
result(結果)
['name1', 'name2.1', 'name3', 'name4', ['name5', 'name7']] ['name1', 'name2', 'name3', 'name4', ['name5', 'name7']
元組(不可變的列表)
格式:tuple = ("tu1", "tu2")
和列表一樣,不可增刪改。只能查詢(切片)
tuple = ("tup1", "tup2") print(tuple.count("tup1")) print(tuple.index("tup2"))
練習題:
程式:購物車程式
需求:
- 啟動程式後,讓用戶輸入工資,然後列印商品列表
- 允許用戶根據商品編號購買商品
- 用戶選擇商品後,檢測餘額是否夠,夠就直接扣款,不夠就提醒
- 可隨時退出,退出時,列印已購買商品和餘額
#購物車練習題 shoplist = [[1, "iphone", 6000], [2, "mac pro", 12000], [3, "ipad air", 8000], [4, "chicken", 30], [5, "eggs", 5], [6, "bike", 500]] mall = [] salary = int(input("please input your salary:")) while True: for i in range(0, len(shoplist)): print(shoplist[i]) goodid = int(input("Please enter the number you want to buy goods:")) - 1 if int(shoplist[goodid][2]) > salary: print("Don't buy goods you want") else: mall.append(shoplist[goodid]) salary = salary - shoplist[goodid][2] yesorno = input("To continue shopping?input Y or N") if yesorno == 'N': print("Do you have bought the goods:%s,remaining sum:%s" % (mall, salary)) print("Thanks for coming.") break