Rumah > pembangunan bahagian belakang > Tutorial Python > Python Day-Senarai pemahaman-Latihan

Python Day-Senarai pemahaman-Latihan

Patricia Arquette
Lepaskan: 2024-12-30 17:33:11
asal
800 orang telah melayarinya

Python Day-List comprehension-Exercises

Pemahaman Senarai

Pemahaman senarai menawarkan sintaks yang lebih pendek apabila anda ingin membuat senarai baharu berdasarkan nilai senarai sedia ada. (rujuk-https://www.w3schools.com/python/python_lists_comprehension.asp)

Contoh:1
Kaedah:1

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []

for x in fruits:
  if "a" in x:
    newlist.append(x)

print(newlist)
Salin selepas log masuk

Kaedah:2(menyeluruh)

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]

newlist = [x for x in fruits if "a" in x]
print(newlist)
Salin selepas log masuk

Output:

['apple', 'banana', 'mango']
Salin selepas log masuk

Contoh:2

l = [10,20,30,40]
newlist = []
#using normal loop
for num in l:
    newlist.append(num**2)
print(newlist)

#using loop in comprehensive way
newlist = [num**2 for num in l]
print(newlist)
Salin selepas log masuk

Output:

[100, 400, 900, 1600]
[100, 400, 900, 1600]
Salin selepas log masuk

Latihan:
1.Cari nombor yang serupa daripada 2 senarai dan nombor berbeza daripada 2 senarai yang sama.
l1 = [10,20,30,40]
l2 = [30,40,50,60]
Dapatkan output ini:
a) 30,40

#30,40
l1 = [10,20,30,40]
l2 = [30,40,50,60]
#normal method

for num in l1:
    for no in l2:
        if num== no:
            print(num,end=' ')
#comprehensive

print([num for num in l1 for no in l2 if num==no])
Salin selepas log masuk

output:

[30, 40]
Salin selepas log masuk

b) 10,20,50,60

l1 = [10,20,30,40]
l2 = [30,40,50,60]
#comprehensive
output = [num for num in l1 if num not in l2]

output = output + [num for num in l2 if num not in l1]
print(output)

#normal method
for num in l1:
    if num not in l2:
        print(num,end=' ')

for num in l2:
    if num not in l1:
        print(num,end=' ')
Salin selepas log masuk

Output:

[10, 20, 50, 60]
10 20 50 60 
Salin selepas log masuk

2. Cari program untuk output yang diberikan dalam pendekatan komprehensif
l1 = [1,2,3]
l2 = [5,6,7]
Output:[(1, 5), (1, 6), (1, 7), (2, 5), (2, 6), (2, 7), (3, 5), (3, 6) , (3, 7)]

l1 = [1,2,3]
l2 = [5,6,7]

l = [(i,j) for i in l1 for j in l2 if i!=j]
print(l)
Salin selepas log masuk

Output:

[(1, 5), (1, 6), (1, 7), (2, 5), (2, 6), (2, 7), (3, 5), (3, 6), (3, 7)]
Salin selepas log masuk

3. Cari atur cara untuk output yang diberikan:
s = "a1b2c3"
keluaran: abc123

Kaedah:1

s = "a1b2c3"

alpha_list = []
num_list = []

for letter in s:
    if letter.isalpha():
        alpha_list.append(letter)
    else:
        num_list.append(letter)

print("".join(alpha_list+num_list))
Salin selepas log masuk

Kaedah:2

s = "a1b2c3"
letter=''.join([i for i in s if i.isalpha()])
no=''.join([i for i in s if i.isdigit()])

print(letter+no)
Salin selepas log masuk

Output:

abc123
Salin selepas log masuk

4. Cari atur cara untuk output yang diberikan:

s = "a4k3b2"
output: aeknbd

s = "a4k3b2"
i = 0 
while i<len(s):
    first = s[i]
    second = int(s[i+1])
    print(first, chr(ord(first)+second),sep='',end='')
    i+=2
Salin selepas log masuk

Output:

aeknbd

Penjelasan:

-->Nilai ASCII pertama diperoleh menggunakan ord(pertama), dan kedua ditambahkan padanya untuk mencari aksara baharu.
-->ord() digunakan untuk mencari nilai ASCII.
-->chr() menukar nilai ASCII-->aksara.

Atas ialah kandungan terperinci Python Day-Senarai pemahaman-Latihan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan