Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

แยก 0 และ 1 ในอาร์เรย์ลิสต์ด้วย Python

List Comprehension เป็นเทคนิคยอดนิยมใน Python ใช้เทคนิคนี้ สร้างอาร์เรย์อินพุต สมาชิกเป็น 0 และ 1 สลับกัน แล้วแยก 0 ไปซ้าย 1 ไปขวา วนลูปอาร์เรย์แยกสองลิสต์ หนึ่งเก็บ 0 อีกอันเก็บ 1 แล้วต่อกัน

ตัวอย่าง

Input:: a=[0,1,1,0,0,1]
Output::[0,0,0,1,1,1]

อัลกอริทึม

seg0s1s(A) /* A คืออาร์เรย์อินพุต สมาชิกของ A ต้องเป็นการผสมของ 0 และ 1 */
ขั้นตอนที่ 1: วนลูปผ่านอาร์เรย์
ขั้นตอนที่ 2: ตรวจสอบสมาชิกทุกตัว ถ้าเป็น 0 วางซ้าย ถ้าเป็น 1 วางขวา
ขั้นตอนที่ 3: ต่อสองลิสต์เข้าด้วยกัน

โค้ดตัวอย่าง

# แยก 0 และ 1 ในอาร์เรย์ลิสต์
def seg0s1s(A):
    n = ([i for i in A if i == 0] + [i for i in A if i == 1])
    print(n)

# โปรแกรมหลัก
if __name__ == "__main__":
    A = list()
    n = int(input("ป้อนขนาดของอาร์เรย์ ::"))
    print("ป้อนตัวเลข ::")
    for i in range(int(n)):
        k = int(input(""))
        A.append(int(k))
    print("อาร์เรย์ลิสต์ใหม่ ::")
    seg0s1s(A)

ผลลัพธ์

ป้อนขนาดของอาร์เรย์ ::6
ป้อนตัวเลข :: 1 0 0 1 1 0
อาร์เรย์ลิสต์ใหม่ :: [0, 0, 0, 1, 1, 1]