Berapa kerumitan waktu mengiris daftar dengan python?

Masalah mengiris daftar telah dibahas sebelumnya, tetapi terkadang kita perlu melakukan pemotongan dengan panjang variabel sesuai dengan input yang diberikan di daftar lain. Masalah ini memiliki aplikasi potensial dalam pengembangan web. Mari kita bahas cara-cara tertentu untuk melakukannya.  

Metode #1. Menggunakan itertools. islice() + pemahaman daftar Pemahaman daftar dapat digunakan untuk mengulang melalui daftar dan masalah komponen diselesaikan menggunakan fungsi islice.  

Python3




# Python3 code to demonstrate

# variable length slicing

# using itertools.islice() + list comprehension

from itertoolsimport islice

 

The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
0

The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
1
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
2
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
3
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
4
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
6
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
8
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
[[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
0
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
[[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
2
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
[[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
4
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
[[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
6
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
[[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
8
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5# Python3 code to demonstrate0
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5# Python3 code to demonstrate2# Python3 code to demonstrate3

 

# Python3 code to demonstrate4

# Python3 code to demonstrate5

The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
2
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
3________28______8
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
4
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
8
The original list : [1, 5, 3, 7, 8, 10, 11, 16, 9, 12]
The slice list : [2, 1, 3, 4]
The variable sliced list is : [[1, 5], [3], [7, 8, 10], [11, 16, 9, 12]]
5# variable length slicing4________28______3

Apakah mengiris O 1 dengan Python?

Mendapatkan potongan adalah O( i_2 - i_1 ) . Ini karena representasi internal Python dari sebuah daftar adalah sebuah array, sehingga Anda dapat mulai dari i_1 dan beralih ke i_2. Anda juga dapat melihat implementasinya di sumber CPython jika Anda mau.

Berapa kompleksitas waktu dan ruang dari pemotongan dengan Python?

Setiap operasi irisan pada dasarnya sama dengan operasi penyalinan O(n) primitif. Karena hanya referensi yang disalin, ukuran atau jenis elemen tidak menjadi masalah. Secara total, kompleksitas waktu berjumlah O(nk). Kompleksitas ruang hanya O(n) , karena irisan sementara dapat segera diklaim kembali.

Berapa kompleksitas waktu daftar di python?

Kerumitan waktu rata-rata operator in untuk daftar adalah O(n) . Ini menjadi lebih lambat ketika ada banyak elemen. Waktu eksekusi sangat bervariasi tergantung pada posisi nilai yang dicari. Dibutuhkan waktu paling lama ketika nilainya berada di akhir atau tidak ada.

Apakah Python mengiris waktu yang konstan?

Membuat irisan yang merupakan pecahan dari n memerlukan waktu O(n). Dalam posting terkait notasi python dijelaskan. Anda juga dapat melihat dokumentasi python tentang kompleksitas waktu. Jadi jawabannya tidak secara umum, hanya untuk irisan ukuran konstan dapat berupa waktu konstan .