python列表中刪除元素
㈠ python如何有多個重復元素刪除其中一個
如果你知道他的索引(index)
假設他的索引存在變數a中
列表名為list
list.pop(a)
當然,也可以用remove函數
但是,局限於只能刪第一個
比如:
a=[0,1,1,1,2,3,3]
a.remove(1)
print(a)
結果為:
[0, 1, 1, 2, 3, 3]
㈡ python列表重復元素刪除
直接遍歷列表刪除。
設一臨時列表保存結果,從頭遍歷原列表,如臨時列表中沒有當前元素則追加:利用python中集合元素惟一性特點,將列表轉為集合,將轉為列表返回:分析:邏輯復雜,臨時變數保存值消耗內存,返回結果破壞了原列表順序讓帶扒,效率最差,
設一臨時列表保存結果,從頭遍歷原列表,如臨時列表中沒有當前元素則追加:利用python中集合元坦昌素惟一性特點,將列表轉為集合,將轉為列行緩表返回分析:邏輯復雜,臨時變數保存值消耗內存,返回結果破壞了原列表順序,效率最差。
㈢ 文科生也能學會Python-第五講:列表
先公布一下上一講最後一個有難度的挑戰題的參考答案:
復習:目前我們學了 一種數據類型 字元串 能舉個字元串的例子嗎?
答案:
再運行這個看看
從中可以看出 + 的兩個作用嗎?
一個是整數運算,一個是字元串的連接
運行上面的代碼會出現這樣的錯誤提示:
去網路這個錯誤 然後看看是什麼原因(學習編程時有個重要的技巧就是學會去網路遇到的問題,這樣才能逐漸掌握自學的能力)
提示:(選擇下面的空白內容即可看見)
答: + 前後的數據類型要一致,必須同時是 整數 或者 字元串 , 整數和字元串不能拼接
新的數據類型:列表
students = ['黨志文', '浦欣然', '羅鴻朗', '姜信然', '居俊德', '宿鴻福', '張成和', '林景輝', '戴英華', '馬鴻寶', '鄭翰音', '厲和煦', '鍾英縱', '盧信然', '任正真', '翟彭勃', '蔣華清', '雙英朗', '金文柏', '饒永思', '堵宏盛', '濮嘉澍', '戈睿慈', '邰子默', '於斯年', '扈元駒', '厙良工', '甘銳澤', '姚興懷', '殳英傑', '吳鴻福', '王永年', '宮銳澤', '黎興發', '朱樂賢', '關樂童', '養永壽', '養承嗣', '賈康成', '韓修齊', '彭凱凱', '白天干', '瞿學義', '那同濟', '衡星文', '公興懷', '宮嘉熙', '牧樂邦', '溫彭祖', '桂永怡']
name = ['小明',18,1.70]
students = ['小明','小紅','小剛']
colors = ['red', 'green','yellow',' black']
問:找出列表的特徵有哪些?
students, name , colors都是變數名
= 後是 四個列表
字元串的特徵是:' ', " ", ''' '''
列表的特徵是: [ ]
中間的各元李消素之間用 , 分開
元素可以是字元串,也可以是整數
舉幾個新的列表的例子
cities = ['北京', '上海', '廣州', '合肥']
names = ['王小明','李小紅','張小剛']
注意: cities, names是變數名,不屬於列表
list2 = [5,6,7,8,9]
問題:5是列表list2的第幾個元素?
計算機計數是從零開始
所以 5是第0號元素
那麼8是第幾個元素?
答:第3號元素
試著運行:
list2 = [5,6,7,8,9]
print(list2[0])
上述代碼輸出list2的0號元素
寫一個代碼 列印出 7
答案:(選擇下面的空白內容即可看見)
list2 = [5,6,7,8,9]
print(list2[2])
list2 = [5,6,7,8,9]
print(list2[:])
print(list2[2:])
print(list2[:2])
print(list2[1:3])
print(list2[2:4])
你運行上面這段代碼,提前猜一下結果會是什麼
print(list2[:]) #輸出列表list2的每一個元素
print(list2[2:]) #輸出列表list2的第3至最後一個元素
print(list2[:2]) #輸出列表list2的第一個至哪皮知第3個元素
print(list2[1:3]) #輸出列表list2的第2個至3個元素
print(list2[2:4]) #輸出列表list2的第3個至第4個元素
這里有個口訣: 左加右不加
看懂的話,寫一個代碼輸出 [6,7,8]
答:
print(list2[1:4])
list2 = [5,6,7,8,9]
list2.append(3)
運行這兩行代碼
然後告訴我 .append() 有什麼作握敬用
答: 列表末尾追加元素
給list2添加數字 11
然後 添加 字元串 '這些是數字'
答案:
list2.append(11)
list2.append('這些是數字')
考題: 給list2添加數字 12
最後一行加上 print(list2)
print經常被拿來測試自己的代碼是否有問題
刪除列表元素的兩種方法:
list2.remove(7)
運行這個試試
最後一行記得加 print(list2)
再試試
del list2[2]
*第二種刪除方法
考題: 請刪除第二個元素 用兩種方法
list2 = [5,6,7,8,9]
答:
list2.remove(6)
del list2[1]
print(list2)
小結:list2.remove()刪除對應的元素
del list2[]刪除元素號對應的元素(元素號又叫做 索引)
以下代碼用於課後練習:
boys = []
boys.append('Tom')
boys.append('Mark')
boys.append('William')
#print(boys)
boys.remove('Mark') #刪除指定的元素,如果有多個,刪除第一次出現的
print(boys)
del boys[1] #刪除列表第2號元素(注意為什麼是2不是1)
print(boys)
students = ['小明','小紅','小剛','小強','小君']
print(students)
students.pop() #刪除列表最後一個元素
print(students)
students.pop(1) #刪除列表第2個元素
print(students)
students.sort() #列表元素永久排序
print(students)
print(sorted(students))
students.reverse() #列表順序倒序
print(students)
len(students) #統計列表元素的個數
print(len(students))
#提取列表最後一個元素的兩種方法
my_list = ['banana', 'apple', 'orange', 'pineapple']
#索引方法
last_element = my_list[-1]
#pop方法
last_element = my_list.pop()
#合並列表元素為一個字元串
list = ["Hello", "world", "Ok", "Bye!"]
combined_string = " ".join(list)
print(combined_string)
㈣ python從列表中刪除元素
有很多種方法都能實現從列表中刪除元素。
方法一:remove(具體的元素),該函數可以刪除列表中某個值的第一個匹配項。
方法二:使用pop(元素位置)來刪除,pop()還可以接著使用。
方法三:使用del關鍵字根據索引來刪除元素。
㈤ python 列表怎樣去掉一個元素
li = [1,2,3,4,5,6]x0dx0ax0dx0a# 1.使用del刪除對應下標的元素x0dx0adel li[2]x0dx0a# li = [1,2,4,5,6]x0dx0ax0dx0a# 2.使用.pop()刪除最後一個元素x0dx0ali.pop()x0dx0a# li = [1,2,4,5]x0dx0ax0dx0a# 3.刪除指定值的元素x0dx0ali.remove(4)x0dx0a# li = [1,2,5]x0dx0ax0dx0a# 4.使用切片來刪除x0dx0ali = li[:-1]x0dx0a# li = [1,2]x0dx0a# !!!切忌使用這個方法,如果li被作為參數傳入函數,x0dx0a# 那麼在函數內使用這種刪除方法,將不會改變原listx0dx0ax0dx0ali = [1,2,3,4,5,6]x0dx0adef delete(li, index):x0dx0ali = li[:index] + li[index+1:]x0dx0adelete(li, 3)x0dx0aprint lix0dx0a# 會輸出[1,2,3,4,5,6]
㈥ Python列表操作
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中的數據類型——列表
列表是一種有序的集合,有點類似c裡面的數組。它的特點是,可以隨時向裡面添加或刪除其中的元素,在python中經常用來存放數據。列表的特點是中括弧,內部元素用逗號隔開。
在這個列表中,可以放進去任何元素,不論你的元素是字元串、整型、浮點型、還是布爾值、空值,包括列表什麼的,都可以放進去。
元素與元素之間,用逗號隔開。
列表會為每個元素分配序號,這個序號代表它的位置,稱為索引(index),第一個元素的位置是0,第二個元素是1,以此類推。
使用索引獲取列表中的值時,需要使用中括弧來訪問,在中括弧前面加上列表名,中括弧內部是元素的索引。
0代表第一個元素的位置,1代表第二個,-1代表倒數第一個,-2代表倒數第二個
使用 len() 函數,可以查看列表裡面有多少個元素
在python中,列表的操作是非常的靈活的,我們可以向其中添加或刪除元素。
添加使用 list.append() 函數
list.append() 函數是將元素插入到列表的末尾,當我們想在特定位置插入元素時可以使用 list.insert() 函數
list.insert() 函數接受兩個參數,第一個參數是插入位置,第二個參數是要插入的元素。
需要注意的是,在使用append和insert時,必須在前面註明要操作的列表。就像上面的例子,我們要操作classmates這個列表,所以必須寫成 classmates.append() 或 classmates.insert() ,如果不這么寫,計算機就不知道你要往哪個列表中加入元素。
沒有特殊情況的話,推薦使用append()函數添加元素,因為使用append的時候,元素默認加在列表尾部,不會造成其他元素索引值的改變。如果使用insert的話,就像上面的insert(1,'Tom'),在位置1插入'Tom'後,Tom後面所有的元素,索引值都加了一個1,列表中元素越多,受影響的程度越大,因此使用append()函數要比insert()函數更快。
刪除列表中元素的方法有三種
del後面需要用索引的方式表明要刪除的元素,也就是上面的例子,names[1]代表names中的第二個元素,使用del即可刪除
list.pop() 函數與del差不多,都是使用索引值進行刪除,只不過寫法不同。
我們可以發現,執行 names.pop(1) 後,python shell列印出了第二個元素的值,也就是我們要刪除的那個值,這是因為 pop() 這個函數,是有返回值的,有時候我們需要使用這個值,這個時候就可以用變數存起來。
這樣我們就可以通過調用a而使用剛才刪掉的元素了。
list.remove() 函數的作用是刪除第一個匹配的元素,上面的例子中,names這個列表裡面,有兩個'Bob',remove函數只刪除了第一個'Bob'。這就是 list.remove() 函數的特點。
有時候我們想使用列表的前10個元素,或者前n個元素,這時候就應該使用列表的切片。
切片和索引類似,都是使用中括弧,區別是,索引中的中括弧裡面只有一個數,而切片不同。切片是切割列表,形成切割下來的部分形成新的列表。
切片: list[start:end:[step=1]] ,這就是切片的表達式,要求start和end兩者必須有一個,step不是可以不指定,不指定的時候默認為1。
切片該怎麼理解呢,start就是開始的位置,end就是結束的位置。切片有個特點是「取前不取後」,看上面那個例子可以發現,1作為start,3作為end,1代表第二個元素,3代表第四個元素,列表切片的時候,是不取後面的那個數字對應的元素的,也就是不取第四個元素,所以names[1:3]只取了第二個元素和第三個元素,這就是所謂的取前不取後。
再看下一個例子。
當不指定start或者end的時候,start默認為0,end默認為最後一個元素的索引值+1,因為「取前不取後」,要想取到最後一個元素,必須加個1才行。
上例中,用 len(numbers) 表示了最後一個元素的索引值,因為索引值從0開始,最後一個元素的索引值一定是列表內元素個數-1,根據「取前不取後」,在end位置上的數字應該+1,所以最後就等於 len(numbers) 了。
當不設定start和end的時候,就默認取所有的元素了。
當加入step,這個選項後,step代表步長,默認為1,設定成2的時候,就是隔一個取一個,設定成3時就是隔兩個取一個。
上例中,第一個切片,start和end均未設定,因此從第一個元素開始,隔一個取一個,得到了所有奇數位置的元素。
第二個切片,start設定為了1,因此取了所有偶數位置的元素。
3在列表中,0不在列表中,所以 3 in a 是True,而 0 in a 是False
更多關於列表的信息可以通過使用 help(list) 查看幫助文檔。
㈧ python刪除列表list中所有的零0元素
本來以為實現這個東西還不是小菜一碟,結果發現這個小東西竟然有坑,哼!
這個方法一是沒坑的方法,親測有效:
方法一:
list=[1,0,0,2]
lis=[]
for i in list:
if i!=0:
lis.append(i)
print(lis)
注意:千萬不要用下面方法二和方法三這兩個方法!是個坑人的坑!(生氣)
方法二:
list=[1,0,0,2]
for i in list:
if i==0:
list.remove(i)
print(list)
方法三:
list=[1,0,0,2]
list.remove(0)
print(list)
㈨ Python基礎(3) - 去掉列表或元組中的重復元素
字毀搜典也是大括弧{},但是跟集合還是有區別。
1.集合沒有重復的元素,列表可以有重復元素
集合會自動將重復的字元給刪掉,而列表會原樣輸出顯示
2.集合中的元素與順序無關,而列表中的元素與順序有關
1.集合{}沒有重復的元素
2.集合{}中的元素斗判跟順序無關
3.將列表[],元組() 轉換成集合後,重復空餘改的元素會自從刪掉,然後將集合轉成列表[] 元組()
加油-2020-0220