- 1、python怎麼創建列表
- 2、求助,用python寫這個程序。輸出一個下列條件的列表
- 3、Python列表操作
- 4、Python列表循環的兩種方法
- 5、關於python列表生成的一個問題
如何創建列表,或生成列表。這裡介紹在python的基礎知識里創建或轉變或生成列表的一些方法。
零個,一個或一系列數據用逗號隔開,放在方括號[ ]內就是一個列表對象。
列表內的數據可以是多個數目,不同類型。
相關推薦:《Python視頻教程》
利用函數list():
用 list([iterable])函數返回一個列表。
可選參數iterable是可迭代的對象,例如字符串,元組。list()函數將可迭代對象的元素重新返回為列表。
將字典類型數據作為參數時,返回的列表元素是字典的鍵。
將range()函數作為參數,返回一個整數元素的列表。
如果沒有參數list()函數將返回一個空列表。
其他能生成列表的方法:
利用split分割字符串生成列表:
字符串調用split方法返回一個由分開的子串組成的列表。
利用列表推導式:
列表推導式,是生成列表的一種方便的表達式。
有關列表推導式,看下面的連接。
正確答案:
n=int(input(‘請輸入一個整數:’))
l =[i for i in range(1,n+1)]
temp = l[0]
for i in range(len(l)-1):
l[i] = l[i+1]
l[i+1] = temp
print(l)
1、append()
append()對於列表的操作主要實現的是在特定的列表最後添加一個元素,並且只能一次添加一個元素,並且只能在列表最後;
m.append(元素A)
2、extend()
extend()對於列表的操作主要實現的是對於特定列表的擴展和增長,可以一次添加多個元素,不過也只能添加在列表的最後;
m.extend([元素A,元素B,……])
3、insert()
insert()對於列表的操作主要是在列表的特定位置添加想要添加的特定元素,比較常用,這裡的特定位置是指元素所在列表中的位置索引號,需要注意的是這裡的索引號都是從0開始的,不是從1開始的,這個大家需要特別注意。
m.insert(A,元素B):表示在列表m裏面的第A+1處加入元素B
1、m.remove()
m.remove的作用是移除掉列表m裏面的特定元素;
m.remove(元素A)
2、del m[n]
它的作用是刪除掉列表裏面的索引號位置為n 的元素,這裡需要注意的是del是一種操作語句。
del m[n]
3、m.pop()
它的作用是將列表m的最後一個元素返回,並且在此基礎上進行刪除掉
1、Temp=m[n]
獲取m列表第n+位置處的元素
1、Temp=m[A:B]
表示將m列表裡從索引號位置為A開始的元素到B-1處元素之間的列表獲取賦給temp.
1、+:它主要實現的是多個列表之間的拼接
常見的列表操作符
2、*:主要實現的是列表的複製和添加
3、比較,:主要進行數據型列表的元素比較
4、and等:;邏輯運算符,可以進行列表之間的邏輯判斷
1、m.count(A):輸出元素A在列表m裏面出現的次數
2、m.index(A):輸出元素A在列表m裏面的索引位置號
m.index(A,a,b):對於列表m裏面包含多個元素A時,輸出在列表m索引號a-b之間的特定索引號
3、m.reverse():將列表m進行前後的翻轉,前變後,後變前
4、m.sort():將列表m裏面地數據進行從小到大的排列
5、m.sort(reverse=True):將列表m裏面地數據進行從大到小的排列
其實對於列表m裏面的元素進行從大到小的排列還可以用以下方法:
N=m.sort()
N.reverse()
1) 深拷貝:
M=[A,b,a,c]
N=M[:]
2) 淺拷貝:
N=M
列表循環的一種方法是,先獲取列表的下標,然後迭代列表的每一個下標。
列表循環的另一種方法是直接獲取列表的每一個元素。
運行結果如下:
python的列表生成式
一、r的防止字符轉義
print r”a\nb”
運行結果:
a\nb
二、獲取變量類型
a = r”a\nb”
print type(a)
運行結果:
type ‘str’
三、判斷類型
a = r”a\nb”
print isinstance(a,str)
運行結果:
True
四、對list、tuple、dict、set進行迭代
4.1常用的方式
list = [‘a’,’b’,’c’]
for i in list:
print i
dict = {“k1″:”v1″,”k2″:”v2”}
for k,v in dict.items():
print k,v
但是這種迭代方式會把list裝到內存中進行迭代
4.2使用迭代器來迭代
list = [‘a’,’b’,’c’]
for i in iter(list):
print i
dict = {“k1″:”v1″,”k2″:”v2”}
for k,v in dict.iteritems():
print k,v
dict = {“k1″:”v1″,”k2″:”v2”}
for k in dict.iterkeys():
print k
這種方式的迭代比較省內存
4.3迭代值的同時迭代下標
list = [‘a’,’b’,’c’]
for index,value in enumerate(list):
print index,value
五、列表生成式
根據集合生成列表
list1 = [‘a’,’b’,’c’]
list2 = [1,2]
print [x*y for x in list1 for y in list2 if y1 and y3]
運行結果是:
[‘aa’, ‘bb’, ‘cc’]
六、列表生成器
通過列表生成式,我們可以直接創建一個列表。但是,受到內存限制,列表容量肯定是有限的。而且,創建一個包含100萬個元素的列表,不僅佔用很大的存儲空間,如果我們僅僅需要訪問前面幾個元素,那後面絕大多數元素佔用的空間都白白浪費了。
所以,如果列表元素可以按照某種算法推算出來,那我們是否可以在循環的過程中不斷推算出後續的元素呢?這樣就不必創建完整的list,從而節省大量的空間。在Python中,這種一邊循環一邊計算的機制,稱為生成器:generator。
只要把一個列表生成式的[]改成(),就創建了一個generator:
g = (x * x for x in range(10))
generator保存的是算法,每次調用next(g),就計算出g的下一個元素的值,直到計算到最後一個元素,沒有更多的元素時,拋出StopIteration的錯誤。
但是我們一般通過for循環來迭代它,並且不需要關心StopIteration的錯誤。
for n in g:
print(n)
原創文章,作者:A17T9,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/127196.html