列表 list
列表是咱們最之後最經常使用的數據類型之一,經過列表能夠對數據實現最方便的存儲、修改等操做
names = ["4ZhangYang", "#!Guyun","xXiangPeng","jack","ChenRonghua","XuLiangchen"]
print(names[0]) # 取下標0的值
print(names[0],names[2])
print(names[-2:]) # 倒數第二個取到結尾
print(names[1:3])
print(names[0:-1]) # 從下標0取到倒數第二個
print(names[0:]) # 等價print(names[:]) 所有
print(names[0:3]) # 等價print(names[:3]) 開始0取到第三個
print(names[0:-1:2])
print(names[::2]) # 後面的2是表明,每隔一個元素,就取一個
for i in names:
print(i)
#擴展用法:對比a 和 b 的輸出結果
a = [1,2,3]
b = a
a[1] = 555
#b = [1,555,3]
print("list_a = ",a)
print("list_b = ",b)
#names = "ZhangYang Guyun Xiangpeng XuLiangChen"
names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex","jack"],"ChenRonghua","XuLiangchen"]
name2 = copy.deepcopy(names) # 深度copy,徹底的把names 複製給name2,修改names對name2無影響。
#name2 = names.copy() # 淺淺copy,只copy第一層,修改names 的第二層元素值,會影響name2 的第二層的值
#name2 = names # 直接複製,修改names,就會影響name2,指向的同一塊地址。
print(names)
print(name2)
names[2] = "向鵬"
names[3][0] ="ALEXANDER" # 下標3 也是一個list,取下標3的第0個下標
print(names)
print(name2)
# 列表的 --- 增 -- 刪 -- 改 -- 查
names.append("LeiHaidong")
names.insert(1,"ChenRonghua")
names.insert(3,"Xinzhiyu")
names[2] ="XieDi"
#delete
names.remove("ChenRonghua")
del names[1] # 等價 names.pop(1)
del names #刪除names, 就是不存在了,若是在使用print(names)打印就會報錯
print(names)
print(names.index("XieDi"))
print( names[names.index("XieDi")] )
print(names.count("ChenRonghua"))
names.clear() # 清空names裏面的元素,注意區別和del names 的區別
names.reverse()
names.sort()
print(names)
names2 = [1,2,3,4]
names.extend(names2)
print(names,names2)
#循環輸出列表內容,在結尾添加指定的內容
names2 = [1,2,3,4]
for x in names2:
print(x,"\n")
print("\n")
for x in [1, 2, 3]:
print(x, end="1") # 輸出的內容結尾添加1
###################################################################################################################
字符串
name = "WOSHISHUI"
name.capitalize() # 首字母大寫,其它字母所有變小寫
name.casefold() # 大寫所有變小寫
name.center(50,"-") # 輸出 '---------------------WOSHISHUI----------------------'
name.count('SHI') # 統計 SHI出現次數
name.encode() # 將字符串編碼成bytes格式
name.endswith("Li") # 判斷字符串是否以 Li結尾
print("woshi\tshui".expandtabs(10)) # 輸出'woshi shui', 將\t轉換成多長的空格
print(name.find('A')) # 查找A,找到返回其索引, 找不到返回-1
#####################################################################################################################
元組
#Python 的元組與列表相似,不一樣之處在於元組的元素不能修改。
#元組使用小括號,列表使用方括號。
#元組建立很簡單,只須要在括號中添加元素,並使用逗號隔開便可。
tup1 = ("Google", "Runoob", 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7)
print("tup1[0]: ", tup1[0])
print("tup2[1:5]: ", tup2[1:5])
# 如下修改元組元素操做是非法的。
# tup1[0] = 100
# 建立一個新的元組
tup3 = tup1 + tup2;
print(tup3)
print(len(tup3)) # 輸出元組元素個數
#刪除元組 - 不能刪除指定的下標,只能整個刪除
del tup1
print ("刪除後的元組 tup : ")
#print (tup1)
#------- 元素函數 -----------------
tuple1 = ('Google', 'Runoob', 'Taobao') # 計算元組元素個數。
print(len(tuple1))
tuple1 = ('5', '4', '9') # 返回元組中元素最大值。
print(max(tuple1))
tuple1 = ('5', '4', '9') # 返回元組中元素最小值。
print(min(tuple1))
list1= ['Google', 'Taobao', 'Runoob', 'Baidu'] # 將列表轉換爲元組。
tuple1=tuple(list1)
print(tuple1)
#####################################################################################################################
字典
#字典是另外一種可變容器模型,且可存儲任意類型對象。
#字典的每一個鍵值(key=>value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式以下所示:
#d = {key1 : value1, key2 : value2 }
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print("dict['Name']: ", dict['Name'])
print("dict['Age']: ", dict['Age'])
#------ 修改字典元素
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict['Name'] = "test" # 添加信息
dict['Age'] = 8 # 更新 Age
print("dict['Name']: ", dict['Name'])
print("dict['Age']: ", dict['Age'])
# ----- 刪除字典元素
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict['Name'] # 刪除鍵 'Name'
print(dict)
dict.clear() # 清空字典
print(dict)
del dict # 刪除字典
print(dict["Name"])
# ------字典函數
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
len(dict) #計算字典元素個數,即鍵的總數。
str(dict) #輸出字典,以可打印的字符串表示。
type(dict) #返回輸入的變量類型,若是變量是字典就返回字典類型。
1 radiansdict.clear()
刪除字典內全部元素
2 radiansdict.copy()
返回一個字典的淺複製
3 radiansdict.fromkeys()
建立一個新字典,以序列seq中元素作字典的鍵,val爲字典全部鍵對應的初始值
4 radiansdict.get(key, default=None)
返回指定鍵的值,若是值不在字典中返回default值
5 key in dict
若是鍵在字典dict裏返回true,不然返回false
6 radiansdict.items()
以列表返回可遍歷的(鍵, 值) 元組數組
7 radiansdict.keys()
返回一個迭代器,可使用 list() 來轉換爲列表
8 radiansdict.setdefault(key, default=None)
和get()相似, 但若是鍵不存在於字典中,將會添加鍵並將值設爲default
9 radiansdict.update(dict2)
把字典dict2的鍵/值對更新到dict裏
10 radiansdict.values()
返回一個迭代器,可使用 list() 來轉換爲列表
11 pop(key[,default])
刪除字典給定鍵 key 所對應的值,返回值爲被刪除的值。key值必須給出。 不然,返回default值。
12 popitem()
隨機返回並刪除字典中的最後一對鍵和值。
#####################################################################################################################
集合
#集合(set)是一個無序的不重複元素序列。
#可使用大括號 { } 或者 set() 函數建立集合,注意:建立一個空集合必須用 set() 而不是 { },由於 { } 是用來建立一個空字典。
#它的主要做用以下:
#去重,把一個列表變成集合,就自動去重了
#關係測試,測試兩組數據以前的交集、差集、並集等關係
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket) ##這裏演示的是去重功能,只會輸出沒有重複的元素
#print("orange" in basket) # 判斷元素是否在集合內 返回true 、 false
#s = set([3,5,9,10]) # 建立一個數值集合
#s = set((3,5,9,10)) # 建立一個數值集合
s = set({3,5,9,10}) # 建立一個數值集合
print(s)
t = set("Hello") # 建立一個惟一字符的集合
print(t)
print(type(t))
a = t | s # t 和 s的並集
print("a = ",a)
b = t & s # t 和 s的交集
print("b = ",b)
c = t - s # 求差集(項在t中,但不在s中)
print("c = ",c)
d = t ^ s # 對稱差集(項在t或s中,但不會同時出如今兩者中)
print("d = ",d)
s.add(1) # 添加一個元素
print(s)
s.update([1,2,'3xx']) # 添加多個元素
print(s)
#s.remove("10sdsd") # 移除一個元素,不存在會發生報錯
print(s)
s.discard("xxxx") # 移除一個元素,不存在不會報錯
print(s)
s.pop() # 隨機 移除一個元素
print(s)
print(len(s)) # 輸出 集合元素個數
s.clear() # 清空
print(s)
s.copy() # 淺複製
print( "x" in s) # 查找x 是否在s 集合裏面,存在返回ture
print( "x" not in s) # 查找x 不在s 集合裏面,不在返回true
##### 內置函數: ########
add() 爲集合添加元素
clear() 移除集合中的全部元素
copy() 拷貝一個集合
difference() 返回多個集合的差集
difference_update() 移除集合中的元素,該元素在指定的集合也存在。
discard() 刪除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 返回集合的交集。
isdisjoint() 判斷兩個集合是否包含相同的元素,若是沒有返回 True,不然返回 False。
issubset() 判斷指定集合是否爲該方法參數集合的子集。
issuperset() 判斷該方法的參數集合是否爲指定集合的子集
pop() 隨機移除元素
remove() 移除指定元素
symmetric_difference() 返回兩個集合中不重複的元素集合。
symmetric_difference_update() 移除當前集合中在另一個指定集合相同的元素,並將另一個指定集合中不一樣的元素插入到當前集合中。
union() 返回兩個集合的並集
update() 給集合添加元素
---
len(s) # set 的長度
x in s # 測試 x 是不是 s 的成員
x not in s # 測試 x 是否不是 s 的成員
s.issubset(t) # s <= t 測試是否 s 中的每個元素都在 t 中
s.issuperset(t) # s >= t 測試是否 t 中的每個元素都在 s 中
s.union(t) # s | t 返回一個新的 set 包含 s 和 t 中的每個元素
s.intersection(t) # s & t 返回一個新的 set 包含 s 和 t 中的公共元素
s.difference(t) # s - t 返回一個新的 set 包含 s 中有可是 t 中沒有的元素
s.symmetric_difference(t) # s ^ t 返回一個新的 set 包含 s 和 t 中不重複的元素
s.copy() # 返回 set 「s」的一個淺複製