สมมติว่าเรามีจำนวนอาร์เรย์ โดยที่แต่ละ 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