Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan jenis data kompleks dalam Python
Jujukan ialah jenis kelas asas termasuk: rentetan, tuple dan senarai
Jujukan boleh digunakan Operasi. termasuk mengindeks, menghiris, menambah, mendarab, dan menyemak ahli.
Selain itu, Python mempunyai kaedah terbina dalam untuk menentukan panjang jujukan dan menentukan elemen terbesar dan terkecil.
Senarai: Senarai ialah lanjutan daripada jenis jujukan, sangat biasa digunakan
Senarai ialah jenis jujukan dan boleh diubah suai sesuka hati selepas penciptaan
Dicipta menggunakan kurungan segi empat sama [] atau senarai( ) , gunakan koma untuk memisahkan elemen
Setiap jenis elemen dalam senarai boleh berbeza, tiada had panjang
hobby_list = [hobby, 'run', 'girl'] print(id(hobby_list)) # 4558605960 print(type(hobby_list)) # print(hobby_list) # ['read', 'run', 'girl']
Jika anda ingin memulakan panjang 10 Senarai
list_empty = [None]*10 print(list_empty) # [None, None, None, None, None, None, None, None, None, None]
menggunakan fungsi julat() untuk mencipta senarai:
hobby_list = list(range(5)) # [0, 1, 2, 3, 4]
hobby_list = ['read', 'run',['girl_name', 18, 'shanghai'] ] print(hobby_list[2][1])# 取出girl的年龄 18
Python. mencipta senarai dua dimensi dan menetapkan parameter yang diperlukan Hanya tulis kol dan baris
list_2d = [[0 for i in range(5)] for i in range(5)] list_2d[0].append(3) list_2d[0].append(5) list_2d[2].append(7) print(list_2d) # [[0, 0, 0, 0, 0, 3, 5], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 7], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
Contoh berikut menukar senarai matriks 3X4 kepada senarai 4X3:
# 以下实例展示了3X4的矩阵列表: matrix = [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], ] # 以下实例将3X4的矩阵列表转换为4X3列表: transposed=[[row[i] for row in matrix] for i in range(4)] print(transposed) # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] # 以下实例也可以使用以下方法来实现: transposed = [] for i in range(4): transposed.append([row[i] for row in matrix]) print(transposed) # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
hobby_list = ['read', 'run', 'girl'] # 索引序号 0 1 2 print(hobby_list[1])# 取出第二个爱好 <code>run4 Pengubahsuaian senarai boleh mengubah suai atau mengemas kini item data senarai Anda juga boleh menggunakan kaedah append() untuk menambah item senarai, senarai
hobby_list = ['read', 'run', 'girl'] hobby_list[0] = 'write'. kaedah Ini menjadikan senarai mudah digunakan sebagai timbunan. Untuk struktur data tertentu seperti timbunan, elemen terakhir yang dimasukkan ialah yang pertama dialih keluar (masuk dahulu, keluar terakhir). Gunakan kaedah append() untuk menambah elemen pada bahagian atas tindanan. Gunakan kaedah pop() untuk mengalih keluar elemen di bahagian atas timbunan tanpa menyatakan indeks.
tambah: Tambahkan elemen x di hujung senarai ls
pop (): Alih keluar elemen daripada senarai (elemen terakhir secara lalai) dan kembalikan nilai elemen
stack = [3, 4, 5] stack.append(6) stack.append(7) print(stack) # [3, 4, 5, 6, 7] print(stack.pop()) # 7 print(stack) # [3, 4, 5, 6] print(stack.pop()) # 6 print(stack.pop()) # 5 print(stack) # [3, 4]3. Pemahaman senarai Pemahaman senarai menyediakan cara mudah untuk membuat senarai daripada jujukan. Lazimnya aplikasi menggunakan beberapa operasi pada setiap elemen jujukan dan menggunakan hasilnya sebagai elemen untuk menjana senarai baharu atau mencipta jujukan berdasarkan kriteria tertentu. Setiap pemahaman senarai bermula dengan untuk diikuti dengan ungkapan, dan kemudian sifar atau lebih untuk atau jika klausa. Senarai yang terhasil ditakrifkan oleh ungkapan dalam konteks yang mengikuti pernyataan untuk dan jika. Jika anda mahu ungkapan itu menghasilkan tupel, anda mesti menggunakan kurungan. 1. Borang penulisan pemahaman senarai:
print([i for i in range(10)] ) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print([i ** 2 for i in range(10)]) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] print([0 for i in range(5)]) #[0, 0, 0, 0, 0] name_list = ['nick', 'sean', 'jason', 'tank'] for n in [name if name == 'nick' else name + '_a' for name in name_list] : print(n) # 'nick', 'sean_a', 'jason_a', 'tank_a' li = [1, 2, 3, 4, 5, 6, 7, 8, 9] print( [x ** 2 for x in li]) # [1, 4, 9, 16, 25, 36, 49, 64, 81] print( [x ** 2 for x in li if x > 5]) # [36, 49, 64, 81] print(dict([(x, x * 10) for x in li])) # {1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60, 7: 70, 8: 80, 9: 90} #生成字典 vec1 = [2, 4, 6] vec2 = [4, 3, -9] sq = [vec2[i] + vec2[i] for i in range(len(vec))] # 实现列表相加 print(sq) # [6, 7, -3] testList = [1, 2, 3, 4] def mul2(x): return x * 2 print([mul2(i) for i in testList]) #使用复杂表达式或嵌套函数: # [2, 4, 6, 8]2. Terdapat hubungan bersarang antara pernyataan pemahaman senarai bersarang. Pernyataan kedua di sebelah kiri ialah lapisan paling luar, pergi satu tahap ke kanan, dan pernyataan pertama di sebelah kiri ialah peringkat terakhir.
[x*y for x in range(1,5) if x > 2 for y in range(1,4) if y < 3]Perintah pelaksanaannya ialah:
for x in range(1,5) if x > 2 for y in range(1,4) if y < 3 x*yContoh
print( [ (x, y) for x in range(10) if x % 2 if x > 3 for y in range(10) if y > 7 if y != 8]) #生成元组 # [(5, 9), (7, 9), (9, 9)] print([x * y for x in [1, 2, 3] for y in [1, 2, 3]]) # [1, 2, 3, 2, 4, 6, 3, 6, 9]4 Operasi asas senarai
ls1 = ['python', 123] ls2 = ['java', 456] print(ls1 * 2); # ['python', 123, 'python', 123] 将列表复制n次。 print(ls1 + ls2); # ['python', 123, 'java', 456] 连接两个列表 name_list = ['nick', 'jason', 'tank', 'sean'] del name_list[2] # 删除索引2位置后的元素 print(name_list) # ['nick', 'jason', 'sean'] del name_list[2:4] # 从列表中删除切片 ,删除第i-j位置的元素 print(name_list) # ['nick', 'jason'] del name_list[:] #清空整个列表 print(name_list) # [] del a # 用 del 删除实体变量: name_list = ['nick', 'jason', 'tank', 'sean'] print('tank sb' in name_list) # 成员运算:in; False print('nick handsome' not in name_list) # 成员运算:in;True name_list = ['nick', 'jason', 'tank', 'sean'] for name in name_list: # for循环 print(name) a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ'] for i in range(len(a)): # 结合range()和len()函数以遍历一个序列的索引 print(i, a[i]) # 0 Google 1 Baidu 2 Runoob 3 Taobao 4 QQ name_list = ['nick', 'jason', 'tank', 'sean'] print(name_list[0:3:2] ) # 切片 ['nick', 'tank']5. Senaraikan fungsi berkaitan
stu_info_list = [ {'name': 'nick', 'age': 19, 'sex': 'male'}, {'name': 'egon', 'age': 18, 'sex': 'male'}, {'name': 'tank', 'age': 20, 'sex': 'female'}, {'name': 'tank', 'age': 20, 'sex': 'female'}, {'name': 'egon', 'age': 18, 'sex': 'male'}, ] new_stu_info_list = [] for stu_info in stu_info_list: if stu_info not in new_stu_info_list: new_stu_info_list.append(stu_info) for new_stu_info in new_stu_info_list: print(new_stu_info)
name_list = ['nick', 'jason', 'tank', 'sean'] print(len(name_list)) # 4 列表元素个数:len; print(min(name_list)) # jason 返回序列s的最小元素; print(max(name_list)) # tank 返回序列s的最大元素 name_list = ['nick', 'jason', 'tank', 'sean'] name_list.insert(1, 'handsome') # insert(i,x):在列表的第i位置增加元素x print(name_list) # ['nick', 'handsome', 'jason', 'tank', 'sean'] name_list = ['nick', 'jason', 'tank', 'sean'] print(name_list.remove('nick')) # remove(x):将列表ls中出现的第一个元素x删除 ,None ; print(name_list) # ['jason', 'tank', 'sean'] name_list = ['nick', 'jason', 'tank', 'sean'] print(name_list.count('nick')) # 1 ;统计某个元素在列表中出现的次数 name_list = ['nick', 'jason', 'tank', 'sean'] print(name_list.index('nick')) # 0;返回元素所在列表中的索引 name_list = ['nick', 'jason', 'tank', 'sean'] name_list.clear() # 删除列表中所有元素 print(name_list) # [] name_list = ['nick', 'jason', 'tank', 'sean'] print(name_list.copy()) # 生成一个新列表,赋值原列表中所有元素 ['nick', 'jason', 'tank', 'sean'] name_list = ['nick', 'jason', 'tank', 'sean'] name_list2 = ['nick handsome'] name_list.extend(name_list2) # 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) print(name_list) # ['nick', 'jason', 'tank', 'sean', 'nick handsome'] name_list = ['nick', 'jason', 'tank', 'sean'] name_list.reverse() # 将列表ls中的元素反转 print(name_list) # ['sean', 'tank', 'jason', 'nick'] name_list = ['nick', 'jason', 'tank', 'sean'] name_list.sort() # 排序,使用用sort列表的元素必须是同类型的 print(name_list) # ['jason', 'nick', 'sean', 'tank'] name_list.sort(reverse=True) # 倒序 print(name_list) # ['tank', 'sean', 'nick', 'jason']
Perhatikan perbezaan daripada rentetan:
color = (0x001100, "blue", creature) # 使用小括号 () 或 tuple() 创建,元素间用逗号分隔。 print(type(color)) # creature = "cat", "dog", "tiger", "human" # 可以使用或不使用小括号。即元组由若干逗号分隔的值组成。 print(type(creature)) #2 operasi Tuple
Nilai indeks, menghiris (abaikan kepala) Ekor, saiz langkah), panjang len, operasi ahli dalam dan bukan dalam, gelung, kiraan, indeks, dll. semuanya sama dengan senarai, tetapi nilainya tidak diubah.
Nilai elemen dalam tuple tidak dibenarkan diubah suai, tetapi kita boleh menyambung dan menggabungkan tuple, seperti yang ditunjukkan dalam contoh berikut:name_str = ('egon') # ()只是普通包含的意思 name_tuple = ('egon',) # 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作字符串使用: print(type(name_str)) # print(type(name_tuple)) #3 (dinamakan tuple): Versi upgrade Python tuple
tup1 = (12, 34.56); tup2 = ('abc', 'xyz') # 以下修改元组元素操作是非法的。 # tup1[0] = 100 # 创建一个新的元组 tup3 = tup1 + tup2; print(tup3) # (12, 34.56, 'abc', 'xyz')
Atas ialah kandungan terperinci Cara menggunakan jenis data kompleks dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!