Python - Ro'yxatdagi raqamlarni A ro'yxatiga qarab qanday chiqarish mumkin?

Mening maqsadim: B ning har bir elementi uchun A ro'yxatidagi B va kichik elementlarning elementlari (B elementidan) mavjud bo'lgan ro'yxat tuzishni xohlayman.

Men ikkita ilmoq uchun harakat qildim, ammo bu ishni qanday tugatish kerakligini bilmayman:

A=[1,2,3,4,5,6,7,8,9]
B=[3,4,5]
C=[]
for i in B:
    for r in A:
        if i>=r:
            C.append(r)

Men shunga o'xshash natija kutmoqdamiz:

[[3,1,2,3],[4,1,2,3,4],[5,1,2,3,4,5]]

Har qanday taklif bormi?

1
Rephrased title va tanani talablarga mos ravishda tahrirladi
qo'shib qo'ydi muallif Jeru Luke, manba

6 javoblar

Buni ko'ring:

for i in B:
    new_list = [i]  # inner list starting with the elmt from B
    for r in A:
        if i >= r:
            new_list.append(r)  # append to inner list
    C.append(new_list)  # finally append inner list to C
0
qo'shib qo'ydi
Katta rahmat. Ishlamoqda.
qo'shib qo'ydi muallif cc1000ml, manba

Ichaklardan birida qatorni ishlatishga harakat qildingizmi:

A=[1,2,3,4,5,6,7,8,9]
B=[3,4,5]
C=[]
for b in B:
    c = [b]
    for a in A:
        if a <= b:
            c.append(a)
    C.append(c)
print(C)
0
qo'shib qo'ydi
Katta rahmat!!!!
qo'shib qo'ydi muallif cc1000ml, manba

Filtrni va ro'yxatni tushunish uchun bitta chiziqni ishlatishingiz mumkin

print [[i]+filter(lambda x: x <= i, A) for i in B]

natijalar

[[3, 1, 2, 3], [4, 1, 2, 3, 4], [5, 1, 2, 3, 4, 5]]
0
qo'shib qo'ydi

Agar buni bir satrda yozishni xohlasangiz:

A=[1,2,3,4,5,6,7,8,9]
B=[3,4,5]
C=[[b] + [a for a in A if a <= b] for b in B]
print(C)

bosib chiqaradi

[[3, 1, 2, 3], [4, 1, 2, 3, 4], [5, 1, 2, 3, 4, 5]]
0
qo'shib qo'ydi
Yordamingiz uchun rahmat
qo'shib qo'ydi muallif cc1000ml, manba

Mana kodingiz

A=[1,2,3,4,5,6,7,8,9]
B=[3,4,5]
res=list()
for i in B:
    C=list()
    C.append(i)
    for r in range(0,i):
        C.append(A[r])
    res.append(C)
print res,  
0
qo'shib qo'ydi

Bitta echim quyidagicha bo'lishi mumkin:

try:
    A = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    B = [3, 4, 5]
    D = []
    a = sorted(A)
    for b in B:
        temp = [b]
        temp.extend(a[0: a.index(b) + 1])
        D.append(temp)
    print(D)
except ValueError as e:
    pass  # Do something when value in B not found in a
0
qo'shib qo'ydi
Python
Python
372 ishtirokchilar

Bu guruh python dasturlash tilini muhokama qilish uchun. Iltimos, o'zingizni hurmat qiling va faqat dasturlash bo'yicha yozing. Botlar mavzusini @botlarhaqida guruhida muhokama qling! FAQ: @PyFAQ Offtopic: @python_uz_offtopic

Python offtopic group !
Python offtopic group !
150 ishtirokchilar

@python_uz gruppasining offtop gruppasi. offtop bo'lsa ham reklama mumkin emas ) Boshqa dasturlash tiliga oid gruppalar @languages_programming