建設網(wǎng)站的必要與可行性seo優(yōu)
目錄
1、使用bool判斷某一數(shù)據(jù)類型是否為空
2、Python集合(數(shù)組)
1、列表
2、元組
3、集合
4、字典
1、使用bool判斷某一數(shù)據(jù)類型是否為空
如果有某種內(nèi)容,則幾乎所有值都將評估為 True。
除空字符串外,任何字符串均為 True。
除 0 外,任何數(shù)字均為 True。
除空列表外,任何列表、元組、集合和字典均為 True。
實際上,除空值(例如 ()、[]、{}、""、數(shù)字 0 和值 None)外,沒有多少值會被評估為 False。當
然,值 False 的計算結(jié)果為 False。
print(bool()); # false
print(bool(0)) # false
print(bool("")) # 空字符串,false
print(bool("abc")) # true
print(bool(123)) # true
print(bool(["apple", "cherry", "banana"])) # true
bool(False) # false
bool(None) # false
bool(()) # false
bool([]) # false
bool({}) # false
所以要是判斷字符串是否為空,還可以使用bool類型進行判斷?當然可以,而不必使用len(x)進行判斷。
2、Python集合
Python 編程語言中有四種集合數(shù)據(jù)類型:
- 列表(List)是一種有序、有索引、可更改的集合。允許重復的成員。
- 元組(Tuple)是一種有序、有索引、不可更改的集合。允許重復的成員。
- 詞典(Dictionary)是一個無序、有索引、可更改的集合。沒有重復的成員
- 集合(Set)是一個無序、無索引、可更改的集合。沒有重復的成員。
- 如果四種集合類型有索引,那么可以根據(jù)索引進行數(shù)據(jù)修改、返回索引號對應的值或者對集合進行切片操作
- 可更改和不可更改體現(xiàn)在對四種集合數(shù)據(jù)類型是否可以使用內(nèi)建方法進行增、刪、改、查等操作
- 雖然元組是不可變的,但是元組可以包含可變對象,比如一個元組中可以包含一個列表。雖然元組本身不可以修改,但是列表中的元素是可以修改的
- 有序的數(shù)據(jù)類型可以按照固定的順序進行排序,而無序的數(shù)據(jù)類型沒有固定的順序,因此無法進行排序。無序的數(shù)據(jù)類型也不能直接比較大小,因為它沒有固定的順序。 使用排序算法對無序數(shù)據(jù)類型進行排序,需要將其轉(zhuǎn)換為有序數(shù)據(jù)類型,如將無序集合轉(zhuǎn)換為有序列表,然后對列表進行排序。但是這種方法只是對整個數(shù)據(jù)類型進行排序,而不是對其中的每個元素進行排序。 需要注意的是,有些數(shù)據(jù)類型雖然是有序的,但是不能進行排序,如 Python 中的元組。元組中的元素雖然有固定的順序,但是由于元組中的元素類型可以是不同的,因此無法進行排序
1、列表(數(shù)組)
說白了就是其他語言中的數(shù)組,只不過python中的這個數(shù)組功能太強大
#———————————負索引表示從末尾開始,-1 表示最后一個項目,-2 表示倒數(shù)第二個項目,依此類推。thislist = ["apple", "banana", "cherry"]print(thislist[-1]) # 打印cherry#———————————此例將返回從索引 -4(包括)到索引 -1(排除)的項目thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]print(thislist[-4:-1]) # ['orange', 'kiwi', 'melon']#———————————使用正向索引對列表進行切片操作,返回一個新的列表thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]# 正向索引切片操作時和字符串一樣,不包括最后一個索引位置的數(shù)據(jù)print(thislist[2:5]) # ['cherry', 'orange', 'kiwi']#———————————使用索引號修改列表中對應位置中的數(shù)據(jù)thislist = ["apple", "banana", "cherry"]thislist[1] = "mango"print(thislist) # ['apple', 'mango', 'cherry']#———————————使用 in 檢查列表中是否有該數(shù)據(jù)thislist = ["apple", "banana", "cherry"]if "apple" in thislist:print("Yes, 'apple' is in the fruits list")#———————————使用len(x)返回當前列表中的數(shù)據(jù)長度thislist = ["apple", "banana", "cherry"]print(len(thislist)) # 3#———————————使用循環(huán)的方法把 list2 追加到 list1 的末尾中l(wèi)ist1 = ["a", "b" , "c"]list2 = [1, 2, 3]for x in list2:list1.append(x) print(list1) # ['a', 'b', 'c', 1, 2, 3]#———————————當然還可以使用extend() 方法將 list2 添加到 list1 的末尾list1.extend(list2)print(list1) # ['a', 'b', 'c', 1, 2, 3]#———————————使用list() 構(gòu)造函數(shù)創(chuàng)建列表thislist = list(("apple", "banana", "cherry"))print(thislist) #['apple', 'banana', 'cherry']
列表中常使用的內(nèi)建方法如下表,直接使用 變量名.方法調(diào)用即可
append() | 在列表的末尾添加一個元素 |
clear() | 刪除列表中的所有元素 |
copy() | 返回列表的副本 |
count() | 返回具有指定值的元素數(shù)量。 |
extend() | 將列表元素(或任何可迭代的元素)添加到當前列表的末尾 |
index() | 返回具有指定值的第一個元素的索引 |
insert() | 在指定位置添加元素 |
pop() | 刪除指定位置的元素 |
remove() | 刪除具有指定值的項目 |
reverse() | 顛倒列表的順序 |
sort() | 對列表進行排序 |
2、元組
元組和列表的操作基本一樣,根據(jù)索引號取值、使用正負索引號對元組進行切片操作并返回一個新的元組、使用len(x)返回元組中數(shù)據(jù)的長度、使用in判斷是否存在某一數(shù)據(jù)都可行。但是唯一不同的是由于元組是一個不可更改的集合,所以凡事想要修改元組的操作是不可行的。
并且,雖然元組是不可更改的,但是可以完全刪除元組
thistuple = ("apple", "banana", "cherry")del thistuple # 刪除元組,列表等其他集合數(shù)據(jù)類型都可以使用print(thistuple) # 這會引發(fā)錯誤,因為元組已不存在
使用 + 運算符 合并兩個元組(返回的是一個新元組,并沒有對之前的元組做出修改)
tuple1 = ("a", "b" , "c")tuple2 = (1, 2, 3)tuple3 = tuple1 + tuple2print(tuple3) # 打印('a', 'b', 'c', 1, 2, 3)
由于元組中的數(shù)據(jù)是不可更改的,所以在元組中必然不存在增、刪、改、查等操作。只有下面兩種
count() | 返回元組中指定值出現(xiàn)的次數(shù)。 |
index() | 在元組中搜索指定的值并返回它被找到的位置。 |
3、集合
在 Python 中,集合用花括號編寫
由于沒有索引的特性,所以不能進行切片操作或者根據(jù)索引值返回對應數(shù)據(jù)
但是可以使用使用for循環(huán)遍歷取值
thisset = {"apple", "banana", "cherry"}for x in thisset:print(x)
可以判斷集合中是否存在某一元素值
thisset = {"apple", "banana", "cherry"}print("banana" in thisset)
下面是集合中常用的內(nèi)建方法
add() | 向集合添加元素。 |
clear() | 刪除集合中的所有元素。 |
copy() | 返回集合的副本。 |
difference() | 返回包含兩個或更多集合之間差異的集合。 |
difference_update() | 刪除此集合中也包含在另一個指定集合中的項目。 |
discard() | 刪除指定項目。 |
intersection() | 返回為兩個其他集合的交集的集合。 |
intersection_update() | 刪除此集合中不存在于其他指定集合中的項目。 |
isdisjoint() | 返回兩個集合是否有交集。 |
issubset() | 返回另一個集合是否包含此集合。 |
issuperset() | 返回此集合是否包含另一個集合。 |
pop() | 從集合中刪除一個元素。 |
remove() | 刪除指定元素。 |
symmetric_difference() | 返回具有兩組集合的對稱差集的集合。 |
symmetric_difference_update() | 插入此集合和另一個集合的對稱差集。 |
union() | 返回包含集合并集的集合。 |
update() |
4、字典
字典是一個無序、可變和有索引的集合。在 Python 中,字典用花括號編寫,擁有鍵和值。
#————————————————創(chuàng)建并打印字典thisdict = {"brand": "Porsche","model": "911","year": 1963
}
print(thisdict) # {'brand': 'Porsche', 'model': '911', 'year': 1963}#————————————————獲取 "model" 鍵的值x = thisdict["model"]x = thisdict.get("model") # 911#————————————————把 "year" 改為 2019thisdict["year"] = 2019print(thisdict) #{'brand': 'Porsche', 'model': '911', 'year': 2019}#————————————————逐個打印字典中的所有鍵名for x in thisdict:print(x) #brand 、model、year#————————————————逐個打印字典中的所有值for x in thisdict:print(thisdict[x]) # Porsche、911、1963#————————————————還可以使用 values() 函數(shù)返回字典的值for x in thisdict.values():print(x) # Porsche、911、1963#————————————————通過使用 items() 函數(shù)遍歷鍵和值for x, y in thisdict.items():print(x, y)# brand Porsche
# model 911
# year 1963
還有使用in判斷是否存在某一鍵值對、使用len(x)判斷詞典的長度等方法
通過使用新的索引鍵并為其賦值,可以將項目添加到字典中
# 通過使用新的索引鍵并為其賦值,可以將項目添加到字典中
thisdict = {"brand": "Porsche","model": "911","year": 1963
}
thisdict["color"] = "red"
print(thisdict) # {'brand': 'Porsche', 'model': '911', 'year': 1963, 'color': 'red'}
del
?關鍵字刪除具有指定鍵名的項目(使用del thisdict也可以完全刪除字典)
thisdict = {"brand": "Porsche","model": "911","year": 1963
}
del thisdict["model"]
print(thisdict) # {'brand': 'Porsche', 'year': 1963}
詞典也可以包含許多詞典,這被稱為嵌套詞典(套娃的形式),有點類似于C中的結(jié)構(gòu)體嵌套
child1 = {"name" : "Phoebe Adele","year" : 2002
}
child2 = {"name" : "Jennifer Katharine","year" : 1996
}
child3 = {"name" : "Rory John","year" : 1999
}myfamily = {"child1" : child1,"child2" : child2,"child3" : child3
}print(myfamily)
C:\Users\My Name>python python_dictionary_nested_2.py
{'child1':?{'name':?'Phoebe?Adele',?'year':?2002},?'child2':?{'name':?'Jennifer?Katharine',?'year':?1996},?'child3':?{'name':?'Rory?John',?'year':?1999}}
也可以使用?dict()
?構(gòu)造函數(shù)創(chuàng)建新的字典
thisdict = dict(brand="Porsche", model="911", year=1963)
# 請注意,關鍵字不是字符串字面量
# 請注意,使用了等號而不是冒號來賦值
print(thisdict)
下面是詞典中常用的內(nèi)建方法
clear() | 刪除字典中的所有元素 |
copy() | 返回字典的副本 |
fromkeys() | 返回擁有指定鍵和值的字典 |
get() | 返回指定鍵的值 |
items() | 返回包含每個鍵值對的元組的列表 |
keys() | 返回包含字典鍵的列表 |
pop() | 刪除擁有指定鍵的元素 |
popitem() | 刪除最后插入的鍵值對 |
setdefault() | 返回指定鍵的值。如果該鍵不存在,則插入具有指定值的鍵。 |
update() | 使用指定的鍵值對字典進行更新 |
values() |