Yêu cầu thg 12 12, 2019 10:38 CH 473 0 2
  • 473 0 2
+1

Làm sao để lấy 1 element trong list bằng số id được gán vào lúc ban đầu Python 3.

Chia sẻ
  • 473 0 2

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


Đã trả lời thg 12 13, 2019 12:58 SA
+1

Ở đâ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.

Chia sẻ
Avatar Minh Pham @phamduyanminh
thg 12 13, 2019 3:15 SA

Ở đâ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 ạ.

Avatar Hải Hà @HaiHaChan
thg 12 15, 2019 7:36 SA

@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;
Đã trả lời thg 12 13, 2019 2:19 SA
+1

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 🤔

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí