7.Python列表

 

List列表

 

序列是Python中最基本的數據結構。序列中的每一個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推

python有6個序列的內置類型,但最多見的是列表和元組。

序列均可以進行的操做包括索引,切片,加,乘,檢查成員。

此外,Python已經內置肯定序列的長度以及肯定最大和最小的元素的方法。

列表是最經常使用的Python數據類型,它能夠做爲一個方括號內的逗號分隔值出現。

列表的數據項不須要具備相同的類型

 

定義

建立一個列表,只要把逗號分隔的不一樣的數據項使用方括號括起來便可。以下所示:

In [1]:
#聲明列表
Marvel_Heroes = ['jack', 'tom', 'lucy', 'superman', 'ironman']   
Computer_brands = []

print(id(Marvel_Heroes))
print(id(Computer_brands))     #定義空列表

#遍歷
for name in Marvel_Heroes:
    print(name)
 
1633246958920
1633246958856
jack
tom
lucy
superman
ironman
 


In [2]:
#獲取第一個元素
print(Marvel_Heroes[0])

#獲取最後一個元素
print(Marvel_Heroes[-1])
print(Marvel_Heroes[len(Marvel_Heroes)-1])

#判斷是否存在
result = 'jack' in Marvel_Heroes
print(result)

#切片操做
print(Marvel_Heroes[1:3])           #包前不包後

#反向
print(Marvel_Heroes[-1::-2])
 
jack
ironman
ironman
True
['tom', 'lucy']
['ironman', 'lucy', 'jack']
 

增 :append() extend() insert(

刪:刪除時注意刪了一個元素繼續原來的遍歷可能會形成訪問越界。由於刪除一個元素直接會在內存減小空間。


In [3]:
#增:
# append(): 在末尾追加
brands = ['hp', 'thinkpad']
brands.append('dell')
print(brands) 

# extend():把字符串一個一個拆了再追加,至關於列表合併 
names = []
names.extend('dell')   #示範
print(names)
names.extend(brands)   #正確的使用
print(names)

# insert():指定位置插入,原來的數據日後移動
brands = ['hp', 'thinkpad']
brands.insert(1, 'dell')
print(brands)
 
['hp', 'thinkpad', 'dell']
['d', 'e', 'l', 'l']
['d', 'e', 'l', 'l', 'hp', 'thinkpad', 'dell']
['hp', 'dell', 'thinkpad']
In [4]:
#刪
brands = ['hp', 'thinkpad', 'lenovo', 'huawei', 'dell', 'mac', 'apple', 'hp', 'hp', 'acer']
l = len(brands)
i = 0
while i < l:
    if 'hp' == brands[i] or 'mac' == brands[i]:
        del brands[i]
        l -= 1
        i -= 1                   #防止出現連續的狀況,漏刪了後面內容
    i += 1
print(brands)

#防止漏刪法2
brands = ['hp', 'thinkpad', 'lenovo', 'huawei', 'dell', 'mac', 'apple', 'hp', 'hp', 'acer']

l = len(brands)
i = 0
while i < l:
    if 'hp' != brands[i] and 'mac' != brands[i]:
        i += 1
    else:
        del brands[i]
        l -= 1
print(brands)

#防止漏刪法3
brands = ['hp', 'thinkpad', 'lenovo', 'huawei', 'dell', 'mac', 'apple', 'hp', 'hp', 'acer']
l = len(brands)
i = 0
while i < l:
    if 'hp' == brands[i] or 'mac' == brands[i]:
        del brands[i]
        l -= 1
        continue                   #防止漏刪了連續的內容
    i += 1
print(brands)
 
['thinkpad', 'lenovo', 'huawei', 'dell', 'apple', 'acer']
['thinkpad', 'lenovo', 'huawei', 'dell', 'apple', 'acer']
['thinkpad', 'lenovo', 'huawei', 'dell', 'apple', 'acer']
In [5]:
#改
brands[5] = 'xiaomi'
print(brands)
 
['thinkpad', 'lenovo', 'huawei', 'dell', 'apple', 'xiaomi']
 

排序

In [6]:
import random
random_list = random.sample(range(0, 100), 6)
print(random_list)

list_sum = sum(random_list)
print(list_sum)

random_list = sorted(random_list)  #默認爲升序,sorted(random_list, reverse = False)
print(random_list)
 
[25, 5, 22, 88, 38, 70]
248
[5, 22, 25, 38, 70, 88]
 

列表函數

添加:append extend insert 刪除:del remove(e):移除列表中第一次出現的元素,若是沒有找到要刪除的元素則報異常 pop():彈棧,移除列表中的最後一個元素,返回值是刪除的那個元素,可是也能夠指定index刪除 clear():清空列表,將列表的全部內容所有刪除javascript

In [7]:
hotpot_list = ['海底撈', '呷哺呷哺', '熱辣一號', '寬板凳']
print(hotpot_list)
print('------------------------------------------------------------')

hotpot_list.append('張亮麻辣燙')
print(hotpot_list)
print('------------------------------------------------------------')

result = hotpot_list.remove('張亮麻辣燙')        #移除列表中第一次出現的元素,若是沒有找到要刪除的元素則報異常
print(result)                                    #沒有返回值
print(hotpot_list)
print('------------------------------------------------------------')

hotpot_list.append('張亮麻辣燙')
result = hotpot_list.pop()                       #彈棧,移除列表中的最後一個元素,返回值是刪除的那個元素
print(result)                                    #返回值是最後一個元素
print(hotpot_list)
result = hotpot_list.pop(2)
print(result)
print(hotpot_list)
print('------------------------------------------------------------')

hotpot_list.reverse()           #將列表倒序
print(hotpot_list)

print('------------------------------------------------------------')
hotpot_list.clear()
print(hotpot_list)
 
['海底撈', '呷哺呷哺', '熱辣一號', '寬板凳']
------------------------------------------------------------
['海底撈', '呷哺呷哺', '熱辣一號', '寬板凳', '張亮麻辣燙']
------------------------------------------------------------
None
['海底撈', '呷哺呷哺', '熱辣一號', '寬板凳']
------------------------------------------------------------
張亮麻辣燙
['海底撈', '呷哺呷哺', '熱辣一號', '寬板凳']
熱辣一號
['海底撈', '呷哺呷哺', '寬板凳']
------------------------------------------------------------
['寬板凳', '呷哺呷哺', '海底撈']
------------------------------------------------------------
[]
 

enumerate():函數用於將一個可遍歷的數據對象(如列表、元祖或字符串)組合爲一個索引序列。

In [8]:
l1 = ['a', 'abc', 'jk', 'poop']
for value in l1:
    print(value)

for index, value in enumerate(l1):
    print(index, value)
 
a
abc
jk
poop
0 a
1 abc
2 jk
3 poop
In [9]:
###例子:冒泡排序
numbers = [5, 7, 8, 9, 4, 2, 3, 1, 6, 10]
#numbers = sorted(numbers)
print ('排序前列表    :',numbers)

for i in range(len(numbers)):
    temp = numbers[i]
    for index, value in enumerate(numbers[i:]):
        if temp > value:
            numbers[index + i] = temp
            temp = value
    numbers[i] = temp
print('冒泡排序後列表:',numbers)
 
排序前列表    : [5, 7, 8, 9, 4, 2, 3, 1, 6, 10]
冒泡排序後列表: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
相關文章
相關標籤/搜索