您好,登錄后才能下訂單哦!
-
1.有序
2.編號,可以通過編號訪問
3.可遍歷
4.可追加/可插入
5.可刪除/可以彈出
6.可修改
7.長度不定
1.使用中括號包含
2.每個元素之間使用逗號分隔
3.可包含任意數據類型
####訪問list
1.列表是有序的數據集,通過列表名[索引]的方式訪問列表中的元素
2.索引編號
3.從左向右依次為0,1,2,3,…,n – 1
4.從右向左一次為-1,-2,-3,…,-n
5.訪問元素的索引必須存在,否則報錯
6.元素修改
7.通過直接給 列表名[索引] 修改對應索引位置的值
8.修改元素的索引必須存在,否則報錯
9.刪除 del
1.類型轉換
2.可以通過函數list將其他可遍歷的類型轉化為列表
3.使用range函數快速創建序列
4.range(end) 創建從0到end-1的連續整數組成的序列
5.range(start, end) 創建從start到end-1的連續整數組成的序列
6.range(start, end, step)創建從start到end-1的每間隔stop個整數組成的序列
>>> nums = [1,2,3,True,False,['a','b','c'],'zhangsan']
>>> len(nums)
7
最大值:max
>>> max_l1 = [1,22,33,44,3,4,5]
>>> max(max_l1)
44
獲取list中元素的最小值:
>>> max_l1 = [1,22,33,44,3,4,5]
>>> min(max_l1)
1
#####3.判斷元素是否在list中存儲
>>> l1
[1, 22, 11, 13, 12, 14]
>>> 1 in l1
True
>>> 10 not in l1
True
>>> l1
[1, 22, 11, 13, 12, 14]
>>>
>>> del l1[2]
>>> l1
[1, 22, 13, 12, 14]
>>> l1 = [1,2,3]
>>> l2 = [4,5,6]
>>> l1 + l2
[1, 2, 3, 4, 5, 6]
>>> l1 *3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> l2 *2
[4, 5, 6, 4, 5, 6]
####按照規則獲取list中一部分元素生成新的list
list[start:end:step]
list[::step]
list[start:end]
list[:end]
list[start:]
list[:]
切片的應用
>>> num=list(range(10))
>>> num
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> nums_1 =num
>>> nums_1[1]=20
>>> num
[0, 20, 2, 3, 4, 5, 6, 7, 8, 9]
>>> id(num)
140243791733960 用id(num)表示內存地址
>>> n1
[0, 20, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
>>> n1[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 20, 0]
>>> n1[::2]
[0, 2, 4, 6, 8]
獲取索引為奇數的元素組成的list
>>> n1
[0, 20, 2, 3, 4, 5, 6, 7, 8, 9]
>>> n1[::3]
[0, 3, 6, 9]
##幫助函數
>>> dir(list())
['__add__', '__class__', '__contains__',
'__delattr__', '__delitem__', '__dir__',
'__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__gt__',
'__hash__', '__iadd__', '__imul__', '__init__',
'__init_subclass__', '__iter__', '__le__',
'__len__', '__lt__', '__mul__', '__ne__',
'__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__reversed__', '__rmul__',
'__setattr__', '__setitem__', '__sizeof__',
'__str__', '__subclasshook__', 'append',
'clear', 'copy', 'count', 'extend', 'index',
'insert', 'pop', 'remove', 'reverse', 'sort']
>>> help(list.append)
Help on method_descriptor:
append(...)
L.append(object) -> None -- append object to end
描述 | append | extend |
---|---|---|
參數類型 | 任意類型 | 可遍歷 |
返回值 | 無 | 無 |
功能 | 將參數中元素整體追加到list最右側 | 將可遍歷參數中的每個元素追加到list最右側 |
>>> nums
[1, 'zhangsan', [2, 3, 4]]
>>> nums.append('dxy')
>>> nums.append([1,23,4,[1,2,3]])
>>> nums
[1, 'zhangsan', [2, 3, 4], 'dxy', [1, 23, 4, [1, 2, 3]]]
extend
>>> nums
[1, 'zhangsan', [2, 3, 4]]
>>> nums.append('dxy')
>>> nums.append([1,23,4,[1,2,3]])
>>> nums
[1, 'zhangsan', [2, 3, 4], 'dxy', [1, 23, 4, [1, 2, 3]]]
描述 | clear | copy |
---|---|---|
參數類型 | 無 | 無 |
返回值 | 無 | list |
功能 | 清空list | 賦值list的元素并返回 |
>>> nums
[1, 'zhangsan', [2, 3, 4], 'dxy', [1, 23, 4, [1, 2, 3]]]
>>> nums.clear()
>>> nums
[]
>>> nums = [1,2,3,4,5]
>>> nums_1 = nums.copy()
>>> nums_1
[1, 2, 3, 4, 5]
>>> nums_1[2] = 100
>>> nums
[1, 2, 3, 4, 5]
>>> nums_1
[1, 2, 100, 4, 5]
描述 | count | index |
---|---|---|
參數類型 | 任意類型 | 任意類型 |
返回值 | lnt | int |
功能 | 獲取元素在list中出現的次數 | 獲取元素在list中的位置,不存在則報錯,可指定查找list start和end范圍 |
>>> nums = list(range(10))
>>> nums
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> nums.count(3)
1
>>> nums.count(-1)
0
>>> nums
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> nums.index(4)
4
>>> nums.index(-1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: -1 is not in list
>>> nums.index(2)
2
>>> nums.index(6)
6
描述 | pop | remove |
---|---|---|
參數類型 | 整數 | 任意 |
返回值 | 任意 | 無 |
功能 | 根據索引刪除list中元素,并返回,若索引在list中不存在則報錯 | 從list中刪除指定的值,若值不存在,則報錯 |
>>> nums
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> nums.pop()
9
>>> nums.pop()
8
>>> nums
[0, 1, 2, 3, 4, 5, 6, 7]
>>> nums.pop(3)
3
>>> nums.pop(5)
6
>>> nums
[0, 1, 2, 4, 5, 7]
>>> nums = [1,2,3,4,5,6,7,8]
>>> nums
[1, 2, 3, 4, 5, 6, 7, 8]
>>> nums.remove(4)
>>> nums.remove(8)
>>> nums
[1, 2, 3, 5, 6, 7]
>>>
描述 | reverse | sort |
---|---|---|
參數類型 | 無 | 排序規則、是否反轉 |
返回值 | 無 | 無 |
功能 | 對list的元素是否反轉 | 對list中的元素進行排序 |
>>> nums
[1, 2, 3, 5, 6, 7]
>>> nums.reverse()
>>> nums
[7, 6, 5, 3, 2, 1]
>>> le
[1, 6, 7, 4, 3, 9, 10]
>>> le.sort()
>>> le
[1, 3, 4, 6, 7, 9, 10]
練習代碼:
jobs = []
while True:
prompt = input('請輸入任務名稱/do:')
if prompt == 'do':
if jobs:
print('請完成任務:' + jobs.pop(0))
else:
print('所有任務已完成,可以放心下班啦')
break
else:
jobs.append(prompt)
常用函數:len max min sum
-
len 顯示列表的長度
max 顯示列表的最大值
min 顯示列表的最小值
sum 顯示所有元素的和
##元組介紹
* 不可變的列表
* 定義
* 使用小括號包含
* 每個元素之間使用逗號分隔
* 可包含任意數據類型
* 如果元組只有一個元素時,元素后的逗號不能省略
元組與列表相同的操作:
-
* 使用方括號加下標訪問元素
* 切片(形成新元組對象)
* count()/index()
* len()/max()/min()/tuple()
** **
元組中不允許的操作:
-
* 修改、新增元素
* 刪除某個元素(但可以刪除整個元組)
* 所有會對元組內部元素發生修改動作的方法。例如,元組沒有remove,append,pop等方法。
訪問與修改元組
-
- 訪問
- 元組是有序的數據集,通過元組名[索引]的方式訪問元組中的元素
- 索引編號
- 從左向右依次為0,1,2,3,…,n – 1
- 從右向左一次為-1,-2,-3,…,-n
- 訪問元素的索引必須存在,否則報錯
- 元素不能修改
元組的四則運算
-
- 加(+)
- 必須為兩個tuple相加
- 乘(*)
- 必須一個為整數
```python
練習:
>>> (1,2,3)+(4,5,6)
(1, 2, 3, 4, 5, 6)
>>> (1,2,3)*2
(1, 2, 3, 1, 2, 3)
python表達式 | 結果 | 描述 |
---|---|---|
len(1,2,3) | 3 | 計算元素的長度 |
(1,2,3)+(4,5,6) | (1,2,3,4,5,6) | 相加-連接 |
('Hi!',)*4 | ('H!,',('H!,',('H!,',('H!,') | 復制 |
3 in(1,2,3) | True | 元素是否存在 |
for x in(1,2,3):print(x) | 123 | 遍歷 |
>>> tuple(range(10))
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
元組常見操作
>>> nums
(1, 2, 3, 4, 5)
>>> len(nums)
5
>>> max(nums)
5
>>> 2 in nums
True
>>> 10 not in nums
True
元組的四則運算
>>> t1 = (1,2,3)
>>> t2 = (4,5,6)
>>> t1 + t2
(1, 2, 3, 4, 5, 6)
>>> t1 *2
(1, 2, 3, 1, 2, 3)
元組的切片
-
- 按照規則獲取tuple中一部分元素生成新的tuple
- tuple[start:end:step]
- tuple [::step]
- tuple[start:end]
- tuple[:end]
- tuple [start:]
- tuple[:]
```python
>>> nums = tuple(range(10))
>>> nums
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> nums[:3]
(0, 1, 2)
>>> nums[4:7]
(4, 5, 6)
>>> nums[4:7:2]
(4, 6)
元組的不可變性
>>> tup = ('a', 'b', ['A', 'B'])
>>> tup[2][0] = 'X'
>>> tup[2][1] = 'Y'
>>> tup
('a', 'b', ['X', 'Y'])
>>> l1
(1, 2, [5, 6])
>>>
>>>
>>> l1[2]
[5, 6]
>>> l1[2] = [11,22,33]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
count 計算tuple中存在相同元素的數量
index 獲取元素在tuple中的位置
>>> dir(tuple)
['__add__', '__class__',
'__contains__', '__delattr__',
'__dir__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattribute__',
'__getitem__', '__getnewargs__', '__gt__',
'__hash__', '__init__', '__init_subclass__',
'__iter__', '__le__', '__len__', '__lt__',
'__mul__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__',
'__repr__', '__rmul__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__',
'count', 'index']
nums=[6, 11, 7, 9, 4, 2, 1]
for i in range(len(nums)-1):
for idx in range(len(nums)-1):
if nums[idx] > nums[idx +1]:
tmp = nums[idx]
nums[idx] = nums[idx + 1]
nums[idx +1] = tmp
print(nums)
練習2
-
* 獲取兩個list中相同的元素到第三個列表中
* nums_1 = [1, 2, 3, 4, 5, 3, 10, 11]
* nums_2 = [1, 2, 3, 1, 4, 5, 5, 3, 12, 34]
* 保證第二個練習中第三個列表中元素不重復
```python
nums1 = [1,2,3,4,5,3,10,11]
nums2 = [1,2,3,1,4,5,5,3,12,24]
nums3 = []
for i in nums1:
if i in nums2 and i not in nums3:
nums3.append(i)
print(nums3)
nums = [-1,-2,-3,-4,11,22]
first_num = None
for num in nums:
if first_num is None:
first_num = num
elif num > first_num:
first_num = num
print(first_num)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。