pythonlist構造
⑴ python的list是數組的結構還是鏈表的結構
應該是鏈表。
數組結構內存地址連續排列,list元素動態調整很麻煩,比如:list元素的刪除和添加、排列,鏈表就容易多了
以上只是個人推測。
⑵ python基礎-列表 元組 集合 字典區別和用法
Python中有六個標準的數據類型:Number(數字),String(字元串),List(列表),Tuple(元組),Set(集合),Dictionary(字典)。其中:Number(數字)、String(字元串)、Tuple(元組)是不可變數據,其餘三種是可變數據。
轉義字元
輸出結果
布爾值
布爾值是一個邏輯值,只有真(True)和假(False)
輸出結果
Python數據結構包括列表(list)、元組(tuple)、集合(set)、字典(dict)等,這里主要講解列表,列表有兩個特點:
輸出結果
修改表中元素
輸出結果
列表中插入元素
輸出結果
輸出列表中的元素
輸出結果
元素是否在列表元素中及統計個數
輸出結果
查找某個元素在列表中的位置
輸出結果
順序結構
輸出結果
if 條件 1
輸出結果
if 條件 2
輸出結果
循環結構
輸出結果
循環語句求和
輸出結果
可重復,類型可不同。 類型不同也是跟數組最本質的區別。 python里的列表用「[]」表示:
對比a和b的結果
列表的 --- 增 -- 刪 -- 改 -- 查
循環輸出列表內容,在結尾添加指定的內容
字元串是 Python 中最常用的數據類型。 我們可以使用引號('或")來創建字元串。
元組與列表相似,不一樣之處在於 元組的元素不能修改。
元組使用小括弧,列表使用方括弧。
元組建立很簡單,只須要在括弧中添加元素,並使用逗號隔開便可。
字典是另外一種可變容器模型,且可存儲任意類型對象。
字典的每一個鍵值(key=>value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括弧({})中 ,格式以下所示:
d = {key1 : value1, key2 : value2 }
字典函數
集合(set)是一個 無序的不重復元素序列。
可使用大括弧 { } 或者 set() 函數建立集合,注意:建立一個空集合必須用 set() 而不是 { },由於 { } 是用來建立一個空字典。
它的主要做用以下: 1.去重,把一個列表變成集合,就自動去重了 。2.關系測試,測試兩組數據以前的交集、差集、並集等關系。
關系測試
輸出結果
元素的添加和刪除
⑶ python中利用dict的key()函數讀取鍵,構造新的list
dict_key(list)不是一種結構,而是一個dict_key類
這是一個不支持索引的,你可以通過
print(type(data.keys())來查看該類,
如果你需要一個list的key值 ,你可以通過list(data.keys())的方式獲取一個可索引的列表
⑷ list() <Python 內置函數>
🔨 class list([ iterable ])
該內置函數本質上是 list 類的構造函數,用於創建 list 實例。
如果沒有向 list 函數傳遞任何參數,則會槐橋知創建一個空列表:
如果向 list 函數傳遞一個可迭代對象,則會以 iterable 中的元素來構建一個消梁新列表。新建列表中各個元素的值和順序均與 iterable 中各個元素的值和順序相同。 iterable 可以是序列,也可是支持迭代的容器,還可鉛消以是迭代器對象。
如果 iterable 本身就是一個列表對象, list(iterable) 則會返回該列表對象的淺拷貝,與 iterable[:] 等效:
執行結果:
擴展閱讀:
⑸ python3中list可以作用迭代器么
list是內置的列表類,它有一個構造函數,可以接受一個Iterable(可迭代)的對象作為參數,返回一個列表對象。而map函數正好返回一個可迭代的對象,當然可以通過其返回的對象來創建列表對象。
⑹ python語句list執行結果
Python語句list(range(1,10,3))執行結果為[1,4,7]。
語法是:range(start,stop[,step])
參數說明:
(1)start:計數從start開始,默認是從0開始。例如range(5)等價於range(0,5);
(2)stop:計數到stop結束,但不包括stop。例如:range(0,5)是[0,1,2,3,4]沒有5;
(3)step:步長,默認為1。例如:range(0,5)等價於range(0,5,1)。
因此,range(1,10,3)的意思是1到10之間的tuple,間隔為3,所以結果是(1,4,7)。
列表(List)是最常用的Python數據類型,它可以作為一個方括弧內的逗號分隔值出現。
所以,list(range(1,10,3))執行結果為[1,4,7]。

(6)pythonlist構造擴展閱讀
Python列表函數&方法
Python包含以下函數:
1、亂運cmp(list1, list2):比較兩個列表的元素;
2、len(list):列表元素個數;
3、max(list):返回列表元素最大值;
4、min(list):返回列表元素最小值;
5、list(seq):將元組轉換為列表。
Python包含以下方法:
1、list.append(obj):在列表末尾添加新的對象;
2、list.count(obj):統計某個元芹陪鬧素在列表中出現的次數;
3、list.extend(seq):在列表末尾一次性追加另嫌罩一個序列中的多個值(用新列表擴展原來的列表);
4、list.index(obj):從列表中找出某個值第一個匹配項的索引位置;
5、list.insert(index, obj):將對象插入列表;
6、list.pop([index=-1]):移除列表中的一個元素(默認最後一個元素),並且返回該元素的值;
7、list.remove(obj):移除列表中某個值的第一個匹配項;
8、list.reverse():反向列表中元素;
9、list.sort(cmp=None, key=None, reverse=False):對原列表進行排序。
⑺ python自帶及pandas、numpy數據結構(一)
1.python自帶數據結構:序列(如list)、映射(如字典)、集合(set)。
以下只介紹序列中的list:
創建list:
list1 = []
list1 = [1,2,3,4,5,6,7,8,9] #逗號隔開
list2 = [[1,2],[3,4],[5,6],[7,8]] #list2長度(len(list2))為2,list2[0] = [1,2]
liststring = list(「thisisalist」) #只用於創建字元串列表
索引list:
e = list1[0] #下標從零開始,用中括弧
分片list:
es = list1[0:3]
es = list1[0:9:2] #步長在第二個冒號後
list拼接(list1.append(obj)、加運算及乘運算):
list長度:
list每個元素乘一個數值:
list2 = numpy.dot(list2,2)
list類似矩陣相乘(每個元素對應相乘取和):
list3 = numpy.dot(list1,list1)
#要求相乘的兩個list長度相同
list3 = numpy.dot(list2,list22)
#要求numpy.shape(list2)和numpy.shape(list22)滿足「左行等於右列」的矩陣相乘條件,相乘結果numpy.shape(list3)滿足「左列右行」
2.numpy數據結構:
Array:
產生array:
data=np.array([[1, 9, 6], [2, 8, 5], [3, 7, 4]])
data=np.array(list1)
data1 = np.zeros(5) #data1.shape = (5,),5列
data1 = np.eye(5)
索引array:
datacut = data[0,2] #取第零行第二列,此處是6
切片array:
datacut = data[0:2,2] # array([6, 5])
array長度:
data.shape
data.size
np.shape(data)
np.size(data)
len(data)
array拼接:
#括弧內也有一個括弧(中括弧或者小括弧)!
d = np.concatenate((data,data))
d = np.concatenate((data,data),axis = 1) #對應行拼接
array加法:逐個相加
array乘法:
d = data data #逐個相乘
d = np.dot(data,data) #矩陣相乘
d = data 3 #每個元素乘3
d = np.dot(data,3) #每個元素乘3
array矩陣運算:
取逆 : np.linalg.inv(data)
轉置:data.T
所有元素求和 : np.sum(data)
生成隨機數:np.random.normal(loc=0, scale=10, size=None)
生成標准正態分布隨機數組:np.random.normal(size=(4,4))
生成二維隨機數組:
np.random.multivariate_normal([0,0],np.eye(2))
生成范圍在0到1之間的隨機矩陣(M,N):
np.random.randint(0,2,(M,N))
Matrix:
創建matrix:
mat1 = np.mat([[1, 2, 3], [4, 5, 6]])
mat1 = np.mat(list)
mat1 = np.mat(data)
matrix是二維的,所有+,-,*都是矩陣操作。
matrix索引和分列:
mat1[0:2,1]
matrix轉置:
np.transpose(mat1)
mat1.transpose()
matrix拼接:
np.concatenate([mat1,mat1])
np.concatenate([mat1,mat1],axis = 1)
numpy數據結構總結:對於numpy中的數據結構的操作方法基本相同:
創建:np.mat(list),np.array(list)
矩陣乘:np.dot(x,y)
轉置:x.T or np.transpose(x)
拼接:np.concatenate([x,y],axis = 1)
索引:mat[0:1,4],ary[0:1,4]
3.pandas數據結構:
Series:
創建series:
s = pd.Series([[1,2,3],[4,5,6]],index = [『a』,『b』])
索引series:
s1 = s[『b』]
拼接series:
pd.concat([s1,s1],axis = 1) #也可使用s.append(s)
DataFrame:
創建DaraFrame:
df = pd.DataFrame([[1,2,3],[1,2,3]],index = ['a','b'],columns = ['x','y','z'])
df取某一列:
dfc1 =df.x
dfc1 = df[『x』]
dfc2 = df.iloc[:,0] #用.iloc方括弧里是數字而不是column名!
dfc2 = df.iloc[:,0:3]
df取某一行:
dfr1 = df.iloc[0]
df1 = df.iloc[0:2]
df1 = df[0:2] #這種方法只能用於取一個區間
df取某個值:
dfc2 = df.iloc[0,0]
dfc2 = df.iloc[0:2,0:3]
⑻ python中list[1][0]意思
你好,親親,首先非常高興回答您的優質提問。python中list[1][0]意思是:
序列是Python中最基本的數據結構。序列中的每個元素都分配一個數字 - 它的租腔弊位置,或索引,第一個索引是0,第二個索引是1,依此類推。
Python有6個序列的內置類型,但最常見的是列表弊族和元組。
序列都可以進行的操作包括索引,切片,加,乘,檢查成員。
此外,Python已經內置確定序列的長度以及確定最大和最小的元素的方法。
列表是最常用的Python數據類型,它可以作為一個方括弧內的逗號分隔值出現。
列表的數據項不需要具有相同的類型
創建一個列表,只要把逗號分隔的不同的數據項使用方括弧括起來即可。如下所示:list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
與字元串的索引一樣,列表索圓御引從0開始。列表可以進行截取、組合等。
⑼ Python:list構建DataFrame
兩種方式:
對DataFrame某一列按正則表達式提取部分字元:
⑽ python的list 和tupe
一、list
list是python內置的有序的列表,可以隨時添加和刪除其中的元素
1、 定義
list_name = ["param1","param2","param3"]
2、訪問
1)用索引來訪問,索引從0開始
索引不可以越界,否則會報錯,最後一個元素的索引是len(city) - 1
2)還可以從後開始訪問 最後一個元素的索引為-1 依次類推,第一個元素的索引為-len(city)
>>> city[-1]
>>> '廣州'
3、元素的追加
4、元素的插入
在city的索引1處增加 重慶
>>> city.insert(1,'重慶')
>>> city
>>> ['北京', '重慶', '上海', '廣州', '南京']
5、元素的刪除
1)刪除末尾
2)刪除指定位置元素 pop(i),i為索引值
6、元素的替換
7、二維list
訪問的時候 我們就可以直接 city[1][0] city[1][1]來訪問 其中的元素值
二、tuple(元組)
tupe和list的最大的區別就是 tuple一旦被創建 就無法修改
1、定義
2、訪問
和list是一樣的 country[0],country[1]。由於tuple是不可變的,所以沒有append 和insert 函數
3、 一個元素的tuple
我們發現 當tuple的元素只有一個元素的時候,python會認為括弧就是小括弧的功能,就會按照整數或者字元串解析,為了解決這個問題,python規定這種情況 在後面加一個逗號','就可以
4、 tuple的指向不變
你會驚訝,怎麼可以變了呢??
其實在python內部,c[0],c[1]指向 1 和 2,而c[2]是指向的一個list對象,其實變的不是tuple的元素,而是list的元素。tuple一開始指向的list並沒有改成別的list,所以,tuple所謂的「不變」是說,tuple的每個元素,指向永遠不變.
