1. 程式人生 > 其它 >Python 基礎之 "組合資料型別" 列表

Python 基礎之 "組合資料型別" 列表

索引、序列的切片操作:
練習1:

s=len('helloworld')
print(s)

s='helloworld'

for i in range(0,len(s)):
    print(i,s[i])

s='helloworld'

s1=s[0:5:1]  # [start:end:step] 開始,結束,步長,不包含end值,也就是5;不指定start,預設從0開始;
print(s1)

序列的相關操作符與函式:

x in s         如果x是s的元素,結果為True,否則為False
x not in s     如果x不是s的元素,結果為True,否則為False
len(s)         序列中s中元素的個數(即序列長度)
max(s)         序列中s中元素的最大值
min(s)         序列中s中元素的最小值
s.index(x)     序列中s中第一次出現的元素x的位置
s.count(x)     序列中s中元素x出現的總次數

列表:

lst=['hello','world',99.8,100]
print(lst)
輸出:['hello', 'world', 99.8, 100]

# 通過內建的list()函式建立列表:
lst1=list(range(1,10,2))
print(lst1)
輸出:[1, 3, 5, 7, 9]

lst2=list('helloworld')
print(lst2)
輸出:['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']

列表元素的遍歷:

for 與 range()函式和len()函式組合遍歷

for 與 enumerate()函式組合遍歷元素和索引

練習1:

lst=['hello','world']

for index,item in enumerate(lst):  # 預設index序號從0開始
    print(index,item)

for index,item in enumerate(lst,1):  # 預設index序號從1開始
    print(index,item)
    #print(index,item,id(lst))  id 檢視記憶體地址

列表的相關操作:(列表中,實際儲存的是物件的記憶體地址):

lst.append(x)        在列表lst最後增加一個元素
lst.insert(index,x)  在列表中第index位置增加一個元素
lst.clear()          清除列表lst中所有元素
lst.pop(index)       將列表lst中第index位置的元素取出,並從列表中將其刪除
lst.remove(x)        將列表中lst中出現的第一個元素x刪除
lst.reverse()        將列表lst中的元素反轉
lst.copy()           拷貝列表lst中所有的元素,生成一個新的列表

列表排序:

1.列表物件的sort()方法
對原列表中的元素進行排序,列表中的元素順序發生改變
lst.sort(key=None,reverse=False)

練習:

# sort() 使用方法
lst=[1,57,6,7,10,77]
print('原列表:',lst)
lst.sort()  # 預設是升序,另一種寫法:lst.sort(reverse=False)
print(lst)

lst.sort(reverse=True) # 降序
print(lst)

# 忽略大小寫比較,如果有大小寫比較,大寫在小寫前面,因為大寫的ASCII是65位,小寫是96位
lst2=['Orange','apple','Bnanna','open','Fuck']
lst2.sort(key=str.lower)
print(lst2)

2.內建的sorted()函式 :

使用sorted()函式後,原來元素順序不變,排序後產生一個新的列表物件
sorted(iterable,key=None,reverse=False)

練習:

# sorted()使用方法
# 預設升序
asc_list=sorted(lst)
print('原列表升序:',asc_list)

#降序
desc_list=sorted(lst,reverse=True)
print('原列表降序:',desc_list)

# 忽略大小寫
new_list=sorted(lst2,key=str.lower)
print(new_list)

列表生成式

1.生成指定範圍的數值列表
lst=[expression for item in range] # expression 表示式

練習:

import random
lst=[ item for item in range(1,11) ] # 第一個item 是表示式
print(lst)

lst2=[random.randint(1,100) for _ in range(10)]  # _ 表示for迴圈執行的次數
print(lst2)  # 產生10個1-100之間的隨機數

2.從列表中選擇符合條件的元素組成新的列表
lst=[expression for item in 列表 if condition]

練習:

# 從列表中選擇符合條件的元素,組成新的列表
lst=[i for i  in range(10) if i%2==0]  # 0-9之間的偶數
print(lst)

二維列表 (外層迴圈是行,內層迴圈是列)
# 建立二維列表
lst=[
    ['城市','環比','增長'],
    ['北京',102,103],
    ['深圳',104,777],
    ['廣州',666,999]
]
print(lst)

# 遍歷列表內容,外層遍歷行,內層遍歷列
for row in lst: # 遍歷行
    for item in row: # 遍歷列
        print(item,end='\t')
    print() # 換行
--------------------------------------------------
# 列表生成4行5列
lst2=[[j for j in range(5)] for i in range(4)]
print(lst2)