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

Python TypeError:สามารถเชื่อมรายการ (ไม่ใช่ “int”) เพื่อแสดงรายการ Solution

รายการสามารถต่อกับรายการอื่นได้ ซึ่งหมายความว่าคุณสามารถเพิ่มเนื้อหาของรายการหนึ่งไปยังอีกรายการหนึ่งได้ ค่าที่มีข้อมูลประเภทอื่น เช่น จำนวนเต็ม ไม่สามารถรวมเข้ากับรายการได้

หากคุณพยายามเชื่อมจำนวนเต็มเข้ากับรายการ ล่าม Python จะส่งกลับข้อผิดพลาด “TypeError:can only concatenate list (ไม่ใช่ “int”) เพื่อแสดงรายการ”

ในคู่มือนี้ เราจะพูดถึงความหมายของข้อผิดพลาดนี้และวิธีการทำงาน เราอธิบายตัวอย่างเพื่อช่วยคุณในการแก้ไขปัญหานี้ในโค้ดของคุณ

TypeError:เชื่อมได้เฉพาะรายการ (ไม่ใช่ “int”) กับรายการ

การต่อกันทำให้ง่ายต่อการเพิ่มสองรายการเข้าด้วยกัน ในขณะที่คุณสามารถใช้เมธอด expand() เพื่อเพิ่มรายการไปยังรายการอื่น การต่อข้อมูลต้องใช้เพียงสัญลักษณ์เดียวเท่านั้น:เครื่องหมายบวก (+)

รายการไม่ใช่วัตถุเดียวที่สามารถต่อกันได้ ออบเจ็กต์ที่ทำซ้ำได้ เช่น พจนานุกรมหรือทูเพิล สามารถต่อกันได้

ไม่สามารถเชื่อมวัตถุสองชนิดที่มีข้อมูลต่างกันได้ ซึ่งหมายความว่าคุณไม่สามารถเชื่อมรายการกับพจนานุกรมหรือจำนวนเต็มกับรายการได้

คุณพบ “TypeError:can only concatenate list (ไม่ใช่ “int”) to list” ถ้าคุณใช้ concatenation เพื่อเพิ่มรายการจำนวนเต็มเดียวลงในรายการ

ตัวอย่างสถานการณ์

เรากำลังจะสร้างโปรแกรมที่ติดตามว่ามีการสั่งซื้อแซนวิชที่ร้านกาแฟในวันศุกร์จำนวนเท่าใด เราต้องการกรองแซนวิชทั้งหมดที่มีการสั่งซื้อมากกว่า 75 ครั้งออกไป เพื่อให้เราเห็นว่าแซนวิชชิ้นไหนได้รับความนิยมมากที่สุด

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

เราเริ่มต้นด้วยการกำหนดสองรายการ:รายการแซนวิชและรายการที่มีการสั่งซื้อแซนวิชแต่ละรายการ

sandwiches = ["Egg and Cress", "Chicken Club", "Hummus and Tomato", "Cheese"]
orders = [54, 77, 22, 98]

รายการของเราถูกกำหนดให้กับตัวแปร "แซนวิช" และ "คำสั่ง" ต่อไป เรากำหนดรายการที่ติดตามหมายเลขดัชนีของแซนวิชที่มีการสั่งซื้อมากกว่า 75 ครั้ง

orders_75 = []

ในขณะนี้ รายการเหล่านี้ว่างเปล่า นี่เป็นเพราะเรายังไม่ทราบว่าแซนวิชชิ้นไหนถูกสั่งไปมากกว่า 75 ครั้งแล้ว

ต่อไป เราทบทวนรายการแซนวิชและคำสั่งซื้อของเราเพื่อดูว่ามีการสั่งซื้อแซนวิชใดบ้างมากกว่า 75 ครั้ง เราสามารถทำได้โดยใช้ for loop:

for s in range(0, len(sandwiches)):
	if orders[s] > 75:
		orders_75 = orders_75 + s

รหัสของเราวนซ้ำในแต่ละตัวเลขในช่วง 0 และความยาวของรายการ "แซนวิช" หากค่าที่สอดคล้องกันในรายการ "คำสั่งซื้อ" สำหรับแซนวิชมากกว่า 75 เราจะเพิ่มตำแหน่งดัชนีของแซนวิชนั้นลงในรายการ "orders_75"

ต่อไป เราเขียน for loop ที่พิมพ์ว่าแซนวิชชิ้นใดได้รับคำสั่งมากกว่า 75 ครั้งเพื่อตรวจสอบว่าโปรแกรมของเราทำงานหรือไม่:

for o in orders_75:
	print(sandwiches[o])

เรียกใช้โค้ด Python ของเราแล้วดูว่าเกิดอะไรขึ้น:

Traceback (most recent call last):
  File "main.py", line 9, in <module>
	orders_75 = orders_75 + s
TypeError: can only concatenate list (not "int") to list

รหัสของเราส่งคืนข้อผิดพลาด

การแก้ปัญหา

ดูบรรทัดรหัสที่กล่าวถึงในข้อความแสดงข้อผิดพลาดของเรา:

	orders_75 = orders_75 + s

เรากำลังพยายามเชื่อมค่าจำนวนเต็มเข้ากับรายการของเรา เราไม่สามารถทำเช่นนี้ได้เนื่องจากการต่อเชื่อมใช้งานได้กับวัตถุที่ทำซ้ำได้ของประเภทข้อมูลเดียวกันเท่านั้น

เพื่อแก้ไขข้อผิดพลาดนี้ เราต้องใช้ append() วิธีการเพิ่มรายการในรายการของเรา วิธีนี้ได้รับการออกแบบมาโดยเฉพาะเพื่อเพิ่มรายการลงในรายการ รายการอาจเป็นประเภทข้อมูลใดก็ได้ เช่น พจนานุกรม จำนวนเต็ม หรือเลขทศนิยม

เปลี่ยนบรรทัดของรหัส orders_75 ของเราเพื่อใช้ append() กระบวนการ:

	orders_75.append(s)

เราไม่จำเป็นต้องกำหนดค่าใดๆ ให้กับ “orders_75” เนื่องจาก append() วิธีเพิ่มรายการในรายการในตำแหน่ง มารันโค้ดของเรากัน:

Chicken Club
Cheese

รหัสของเราพิมพ์รายการแซนวิชที่มีการสั่งซื้อมากกว่า 75 ครั้ง มีแซนวิช 2 ชิ้นที่ตรงตามเกณฑ์นี้:คลับไก่และชีส

บทสรุป

ข้อผิดพลาด “TypeError:can only concatenate list (ไม่ใช่ “int”) to list” จะปรากฏขึ้นเมื่อคุณพยายามเชื่อมจำนวนเต็มเข้ากับรายการ

ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากเฉพาะรายการเท่านั้นที่สามารถเชื่อมกับรายการได้ เพื่อแก้ไขข้อผิดพลาดนี้ ใช้ append() วิธีการเพิ่มรายการลงในรายการ

ตอนนี้คุณพร้อมที่จะแก้ไขข้อผิดพลาดของ Python อย่างมืออาชีพแล้ว!