2 ta fayl o'rtasidagi farq

Faylning 1-satrini file1-dan file1-ga ko'chirishga harakat qilaman. Men simmetrik_differradan foydalanmoqdaman, lekin unordered natija beradi. Ushbu misoldagi fayllarning mazmuni haqiqiy emas. Mening haqiqiy fayllarimda faqat raqamlar mavjud emas, ammo muammolarni ko'rsatish uchun raqamlardan foydalanganman. Ehtimol, 2-faylga raqamlar qo'sha olaman va ularni ro'yxat sifatida tartibga keltiraman, ammo 2 ta faylni boshqa dasturdan tasodifiy olishim mumkin, men tanish emasman va aralashmoqchi emasman.

file1 mazmuni:

'1 \ n', '2 \ n', '3 \ n'

file2 mazmuni:

'1 \ n', '2 \ n', '3 \ n', '4 \ n', '5 \ n', '6 \ n', '7 \ n', '8 \ n ',' 9 \ n ',' 10 \ n '

bu har bir satrda faqat satr

diff = set(file1).symmetric_difference(file2)
    

(['8 \ n', '10 \ n ',' 9 \ n ',' 6 \ n ',' 7 \ n ',' 4 \ n ',' 5 \ n '/p>   

Mening maqsadim

    

to'siq (['4 \ n', '5 \ n', '6 \ n', '7 \ n', '8 \ n', '9 \ n', '10 \ n '])/p>   

1
to'siq da belgilangan tartib bor.
qo'shib qo'ydi muallif juanpa.arrivillaga, manba
to'siq da belgilangan tartib bor.
qo'shib qo'ydi muallif juanpa.arrivillaga, manba
to'siq da belgilangan tartib bor.
qo'shib qo'ydi muallif juanpa.arrivillaga, manba

13 javoblar

Agar siz python bilan turmush qurmagan bo'lsangiz, uni comm Unix operatsion tizimiga (agar siz Unix asoslangan tizimda bo'lsangiz) juda oson bajarilishi mumkin:

$ comm -13 file1.txt file2.txt
4
5
6
7
8
9
10

Bu fayllar oldindan tartiblangan deb hisoblanadi.

Siz osongina bu Python'dan qo'ng'iroq qilishingiz mumkin .

comm dan foydalanish haqida batafsil ma'lumot

1
qo'shib qo'ydi

Agar siz python bilan turmush qurmagan bo'lsangiz, uni comm Unix operatsion tizimiga (agar siz Unix asoslangan tizimda bo'lsangiz) juda oson bajarilishi mumkin:

$ comm -13 file1.txt file2.txt
4
5
6
7
8
9
10

Bu fayllar oldindan tartiblangan deb hisoblanadi.

Siz osongina bu Python'dan qo'ng'iroq qilishingiz mumkin .

comm dan foydalanish haqida batafsil ma'lumot

1
qo'shib qo'ydi

join() va split() funksiyalaridan foydalaning

line1 = "'1\n','2\n','3\n'"
line2 = "'1\n','2\n','3\n','4\n'`,'5\n','6\n','7\n','8\n','9\n','10\n'"

''.join([i for i in line2.split(',') if i not in line1.split(',')])
1
qo'shib qo'ydi

join() va split() funksiyalaridan foydalaning

line1 = "'1\n','2\n','3\n'"
line2 = "'1\n','2\n','3\n','4\n'`,'5\n','6\n','7\n','8\n','9\n','10\n'"

''.join([i for i in line2.split(',') if i not in line1.split(',')])
1
qo'shib qo'ydi

join() va split() funksiyalaridan foydalaning

line1 = "'1\n','2\n','3\n'"
line2 = "'1\n','2\n','3\n','4\n'`,'5\n','6\n','7\n','8\n','9\n','10\n'"

''.join([i for i in line2.split(',') if i not in line1.split(',')])
1
qo'shib qo'ydi

Buni simmetic_difference tomonidan olingan to'plamdan qilishingiz mumkin:

a_list = list(set_instance)
a_list.sort()

sizda tartiblangan ro'yxatingiz bor va faylga qo'sha olasiz1

1
qo'shib qo'ydi

Buni simmetic_difference tomonidan olingan to'plamdan qilishingiz mumkin:

a_list = list(set_instance)
a_list.sort()

sizda tartiblangan ro'yxatingiz bor va faylga qo'sha olasiz1

1
qo'shib qo'ydi

Buni simmetic_difference tomonidan olingan to'plamdan qilishingiz mumkin:

a_list = list(set_instance)
a_list.sort()

sizda tartiblangan ro'yxatingiz bor va faylga qo'sha olasiz1

1
qo'shib qo'ydi

Agar ro'yxatni to'siqqa aylantiradigan bo'lsangiz, elementlarning tartibini yo'qotasiz. Bu mutlaqo normaldir, chunki matematik tartibda to'plamga ma'no yo'q. Set.symmetric_difference foydalanayotgan bo'lsangiz, keyinchalik uni qayta tartiblashtirishingiz kerak bo'ladi. Agar bu sizga o'zingizning algoritmingizni yozishdan ko'ra qoniqarli natija bermasa.

0
qo'shib qo'ydi

Agar ro'yxatni to'siqqa aylantiradigan bo'lsangiz, elementlarning tartibini yo'qotasiz. Bu mutlaqo normaldir, chunki matematik tartibda to'plamga ma'no yo'q. Set.symmetric_difference foydalanayotgan bo'lsangiz, keyinchalik uni qayta tartiblashtirishingiz kerak bo'ladi. Agar bu sizga o'zingizning algoritmingizni yozishdan ko'ra qoniqarli natija bermasa.

0
qo'shib qo'ydi

Hozir men foydalanmoqdaman

with open("file2") as f:
    with open("file1", "r+") as f1:
        for line in f:
            if line not in f1:
                f1.write(line) 
0
qo'shib qo'ydi

Hozir men foydalanmoqdaman

with open("file2") as f:
    with open("file1", "r+") as f1:
        for line in f:
            if line not in f1:
                f1.write(line) 
0
qo'shib qo'ydi

Hozir men foydalanmoqdaman

with open("file2") as f:
    with open("file1", "r+") as f1:
        for line in f:
            if line not in f1:
                f1.write(line) 
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