Làm sao để lấy 1 element trong list bằng số id được gán vào lúc ban đầu Python 3.
Ví dụ em có 1 list với 5 elements:
petList = [None, None, None, None, None]
Chương trình sẽ hỏi người dùng nhập id tag, cân nặng và chiều cao của con vật:
petTag = input("Enter a tag for the Pet: ")
if(len(petTag) < 3):
print("Invalid tag number for the pet!")
sys.exit()
petWeight = float(input("Enter pet's weight: "))
petHeight = float(input("Enter pet's height: "))
petObj = PetClass(petWeight, petHeight, petTag)
Sau đó chương trình sẽ hỏi người dùng nhập pet id. Và tìm pet id trong list theo linear search. Cho em xin hỏi là bằng cách nào em có thể so sánh pet id được nhập rồi so sánh với pet id đã được stored trong list và lấy cái element đó ra và return lại về None ạ. Em xin cảm ơn.
2 CÂU TRẢ LỜI
Ở đây thiếu cách bạn lưu petList. Nếu bạn lưu pet theo id
. Thì bạn chỉ việc get pet theo id
thôi. Còn nếu không, bạn buộc phải duyệt mảng để check xem phần tử nào trong mảng có id
khớp với id
người dùng nhập vào.
Ở đây em có tạo 1 object cho pet (petObj). Thì nó sẽ lưu cái pet weight, pet height với pet tag luôn đấy anh và sau đó em cho cái petObj này vô cái list. Nên là em bị vướng là làm sao mà em có thể dùng cái petTag được chứa trong cái petObj đó để so sánh với cái số petID người dùng nhập và nếu mà cái: petID == petTag --> em sẽ pop/remove cái object đấy trong cái list. Em cảm ơn ạ.
@phamduyanminh như mình đã nói ở trên, nếu bạn lưu thẳng obj vào trong List thì bạn buộc phải duyệt mảng:
for pet in petList :
if pet.petTag == id:
return pet;
Này chắc là Ruby hoặc Python. Mình không rõ 2 ngôn ngữ này có hàm nào cho phép get thẳng một element từ mảng không, bạn thử cú pháp: python/ruby get element from array xem có kết quả nào không
Hoặc có thể dùng cách kinh điển:
for pet in petList :
if pet == id:
foundPet = pet
return 'None'
Chắc vậy