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

โปรแกรมนับรายการที่ตรงกับกฎโดยใช้ Python


สมมติว่าเรามีจำนวนอาร์เรย์ โดยที่แต่ละ nums[i] มีสามองค์ประกอบ [type_i, color_i, name_i] สิ่งเหล่านี้เป็นการอธิบายประเภท สี และชื่อของไอเท็ม ith เรายังมีกฎที่แสดงโดยสตริงอื่นๆ อีกสองสตริง ruleKey และ ruleValue ตอนนี้เราสามารถพูดได้ว่ารายการ ith ตรงกับกฎหากข้อใดข้อหนึ่งต่อไปนี้เป็นจริง -

  • ruleKey ="ประเภท" และ ruleValue =type_i

  • ruleKey ="สี" และ ruleValue =color_i

  • ruleKey ="ชื่อ" และ ruleValue =name_i

เราต้องหาจำนวนที่ตรงกันที่เราหาได้

ดังนั้นหากอินพุตเป็นแบบ

จักรยาน สีน้ำเงิน ไฟฟ้า
รถยนต์ สีเงิน ซูโม่
จักรยาน สีน้ำเงิน ทีวี

และ ruleKey ="สี", ruleValue ="สีน้ำเงิน" จากนั้นผลลัพธ์จะเป็น 2 เนื่องจากมีสองรายการที่ตรงกัน [["Bike","blue","ElecB"] และ ["Bike","blue","TVS "]].

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • นับ :=0

  • ถ้า ruleKey เหมือนกับ "type" แล้ว

    • สำหรับผมอยู่ในช่วง 0 ถึงขนาดของรายการ ทำ

      • ถ้า items[i, 0] เหมือนกับ ruleValue แล้ว

        • นับ :=นับ + 1

  • ถ้า ruleKey เหมือนกับ "สี" แล้ว

    • สำหรับผมอยู่ในช่วง 0 ถึงขนาดของรายการ ทำ

      • ถ้า items[i, 1] เหมือนกับ ruleValue แล้ว

        • นับ :=นับ + 1

  • ถ้า ruleKey เหมือนกับ "name" แล้ว

    • สำหรับผมอยู่ในช่วง 0 ถึงขนาดของรายการ ทำ

      • ถ้า items[i, 2] เหมือนกับ ruleValue แล้ว

        • นับ :=นับ + 1

  • จำนวนคืน

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

def solve(items, ruleKey, ruleValue):
   count = 0
   if ruleKey == "type":
      for i in range(len(items)):
         if items[i][0] == ruleValue:
            count += 1
   if ruleKey == "color":
      for i in range(len(items)):
         if items[i][1] == ruleValue:
            count += 1
   if ruleKey == "name":
      for i in range(len(items)):
         if items[i][2] == ruleValue:
            count += 1
   return count
items = [["Bike","blue","ElecB"],["Car","silver","Sumo"],["Bike","blue","TVS"]]
ruleKey = "color"
ruleValue = "blue"
print(solve(items, ruleKey, ruleValue))

อินพุต

[["Bike","blue","ElecB"],["Car","silver","Sumo"],["Bike","blue","TVS"]],"color",
"blue"

ผลลัพธ์

2