數值型別是標量型別,也就是說這種型別的物件沒有可以訪問的內部結構。
符串型別是一種結構化的、非標量型別,所以才會有一系列的屬性和方法。
列表(list
),也是一種結構化的、非標量型別,它是值的有序序列,每個值都可以通過索引進行標識,定義列表可以將列表的元素放在中,多個元素用
,
進行分隔,可以使用for
迴圈對列表元素進行遍歷,也可以使用或
[:]
運算子取出列表中的乙個或多個元素。
如何定義列表、如何遍歷列表,列表的下標運算。
list = [1 , 2 , 3 , 4 , 5]
print(list)#[1, 2, 3, 4, 5]
#*表示列表元素的重複
list2 = ['word'] * 3
print(list2)#['word', 'word', 'word']
# 計算列表長度(元素個數)
print(len(list1))#5
# 下標(索引)運算
print(list1[0])#1
print(list1[4])#5
print(list1[5])#indexerror: list index out of range
print(list1[-1])#5
print(list1[-3])#3
list1[2] = 200#[1, 2, 200, 4, 5]
# 通過迴圈用下標遍歷列表元素
for index in range(len(list1)):
print(list1[index])#1
2345
# 通過for迴圈遍歷列表元素
for elem in list1:
print(elem)
# 通過enumerate函式處理列表之後再遍歷可以同時獲得元素索引和值
for index, elem in enumerate(list1):
print(index, elem)
#0 1
1 22 3
3 44 5
如何向列表中新增元素以及如何從列表中移除元素。
list1 = [1, 2, 3, 4, 5]
#新增元素
list1.insert(1,250)
list1.extend([1000, 2000])#list1 += [1000, 2000]
print(list1)#[1, 250, 2, 3, 4, 5, 100, 1000, 2000]
print(len(list1))#9
# 先通過成員運算判斷元素是否在列表中,如果存在就刪除該元素
if 3 in list1:
list1.remove(3)
if 300 in list1:
list1.remove(300)
print(list1)#[1, 2, 4, 5]
# 從指定的位置刪除元素
list1.pop(0)
list1.pop(len(list1) - 1)
print(list1)#[2, 4]
# 清空列表元素
list1.clear()
print(list1)#
和字串一樣,列表也可以做切片操作,通過切片操作我們可以實現對列表的複製或者將列表中的一部分取出來建立出新的列表,
color = ['red', 'yellow', 'blue', 'black',]
color +=['green', 'orange', 'purple']
color2 = color[1:4]#列表切片
print(color2)#['yellow', 'blue', 'black']
# 可以通過完整切片操作來複製列表
color3 = color[:]
print(color3)
#['red', 'yellow', 'blue', 'black', 'green', 'orange', 'purple']
color4 = color[-3: -1]
print(color4)#['green', 'orange']
# 可以通過反向切片操作來獲得倒轉後的列表的拷貝
color5 = color[:: -1]
print(color5)
#['purple', 'orange', 'green', 'black', 'blue', 'yellow', 'red']
對列表的排序操作。
color = ['red', 'yellow', 'blue', 'black',]
color2 = sorted(color)
# sorted函式返回列表排序後的拷貝不會修改傳入的列表
# 函式的設計就應該像sorted函式一樣盡可能不產生***
color3 = sorted(color, reverse=true)
color4 = sorted(color, key=len)
# 通過key關鍵字引數指定根據字串長度進行排序而不是預設的字母表順序
print(color)#['red', 'yellow', 'blue', 'black']
print(color2)#['black', 'blue', 'red', 'yellow']
print(color3)#['yellow', 'red', 'blue', 'black']
print(color4)#['red', 'blue', 'black', 'yellow']
color.sort(reverse=true)
print(color)#['yellow', 'red', 'blue', 'black']
我們可以使用列表的生成式語法來建立列表,
f = [x for x in range(1, 10)]
print(f)#[1, 2, 3, 4, 5, 6, 7, 8, 9]
f = [x + y for x in 'abcde' for y in '1234567']
print(f)
python中還有另外一種定義生成器的方式,就是通過yield
關鍵字將乙個普通函式改造成生成器函式
ef fib(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
yield a
def main():
for val in fib(20):
print(val)
if __name__ == '__main__':
main()
ython中的元組與列表類似也是一種容器資料型別,可以用乙個變數(物件)來儲存多個資料,不同之處在於元組的元素不能修改,在前面的**中我們已經不止一次使用過元組了,
# 定義元組
t = ('懟懟',38 ,true, '四川')
print(t)
# 獲取元組中的元素
print(t[0])
print(t[3])
# 遍歷元組中的值
for x in t:
print(x)
# 重新給元組賦值
t = ('張三', 20, true, '雲南')
print(t)
# 將元組轉換成列表
person = list(t)
print(person)
# 將列表轉換成元組
color_list = ['red', 'yellow', 'blue']
color_tuple = tuple(color_list)
print(color_tuple)
python中的集合跟數學上的集合是一致的,不允許有重複元素,而且可以進行交集、並集、差集等運算。
# 建立集合的字面量語法
set1 =
print(set1)#
print('length =', len(set1))#length = 3
# 建立集合的構造器語法
set2 = set(range(1, 10))
set3 = set((1, 2, 3, 3, 2, 1))
print(set2, set3)#
# 建立集合的推導式語法(推導式也可以用於推導集合)
set4 =
print(set4)
向集合新增元素和從集合刪除元素,
set1.add(4)
set1.add(5)
set2.update([11,12])
set2.discard(5)
if 4 in set2:
set2.remove(4)
print(set1, set2)
print(set3.pop())
print(set3)
未完 Python處理資料結構常用方法
整理程式設計中常用的資料結構處理方法。coding utf 8 list 1,2,3,4,5 for index,value in enumerate list list index 2 根據具體的函式體修改value相應的值,這裡把所有list的元素都變為了2 print list result ...
Python中常用的資料結構
list是python中使用最頻繁的資料型別。列表可以完成大多數集合類的資料結構的實現。列表中元素的型別可以不相同,它支援數字 字串 甚至可以包含其他巢狀列表 巢狀 列表是寫在 裡,各元素間用逗號隔開的元素列表。注 列表和字串一樣,同樣可以被索引和擷取,列表被擷取後返回乙個包含所需元素的新列表 變數...
Python常用列表資料結構小結
1.list.append x 把元素x新增到列表的結尾,相當於a x 如下 a 1,2,3,4,5 a 1,2,3,4,5 a.append 2 a 1,2,3,4,5,2 2.list.extend l 將乙個列表中的所有元素都新增到另乙個列表中,相當於 a len a l,如下 a 1,2,3...