chỉ tập trung vào các lỗi bạn nhận được:
TypeError: unsupported operand type(s) for +: 'range' and 'list
tôi sẽ cung cấp cho bạn một lời giải thích.
mã hiện tại của bạn không làm việc trong Python 2:
deck = [(value, suit) for value in range(2, 11) + ["J", "Q", "K", "A"] for suit in ["H", "C", "D", "S"]]
print deck
sẽ in:
[(2, 'H'), (2, 'C'), (2, 'D'), (2, 'S'), (3, 'H'), (3, 'C'), (3, 'D'), (3, 'S'), (4, 'H'), (4, 'C'), (4, 'D'), (4, 'S'), (5, 'H'), (5, 'C'), (5, 'D'), (5, 'S'), (6, 'H'), (6, 'C'), (6, 'D'), (6, 'S'), (7, 'H'), (7, 'C'), (7, 'D'), (7, 'S'), (8, 'H'), (8, 'C'), (8, 'D'), (8, 'S'), (9, 'H'), (9, 'C'), (9, 'D'), (9, 'S'), (10, 'H'), (10, 'C'), (10, 'D'), (10, 'S'), ('J', 'H'), ('J', 'C'), ('J', 'D'), ('J', 'S'), ('Q', 'H'), ('Q', 'C'), ('Q', 'D'), ('Q', 'S'), ('K', 'H'), ('K', 'C'), ('K', 'D'), ('K', 'S'), ('A', 'H'), ('A', 'C'), ('A', 'D'), ('A', 'S')]
Trong Python 3 bạn phải sử dụng list(range(2, 11))
:
deck = [(value, suit) for value in list(range(2, 11)) + ["J", "Q", "K", "A"] for suit in ["H", "C", "D", "S"]]
print(deck)
sẽ pr int:
[(2, 'H'), (2, 'C'), (2, 'D'), (2, 'S'), (3, 'H'), (3, 'C'), (3, 'D'), (3, 'S'), (4, 'H'), (4, 'C'), (4, 'D'), (4, 'S'), (5, 'H'), (5, 'C'), (5, 'D'), (5, 'S'), (6, 'H'), (6, 'C'), (6, 'D'), (6, 'S'), (7, 'H'), (7, 'C'), (7, 'D'), (7, 'S'), (8, 'H'), (8, 'C'), (8, 'D'), (8, 'S'), (9, 'H'), (9, 'C'), (9, 'D'), (9, 'S'), (10, 'H'), (10, 'C'), (10, 'D'), (10, 'S'), ('J', 'H'), ('J', 'C'), ('J', 'D'), ('J', 'S'), ('Q', 'H'), ('Q', 'C'), ('Q', 'D'), ('Q', 'S'), ('K', 'H'), ('K', 'C'), ('K', 'D'), ('K', 'S'), ('A', 'H'), ('A', 'C'), ('A', 'D'), ('A', 'S')]
Bạn phải sử dụng list()
vì range()
bằng Python 3 không tạo ra một loại chuỗi bất biến, không phải là một danh sách.
Ví dụ của bạn không rõ ràng. Kết quả/đầu ra mong đợi là gì? – timgeb
@timgeb Trong ví dụ này, tôi đang cố gắng tạo một bộ bài 52 tiêu chuẩn. Vấn đề là tôi muốn lặp lại thông qua {"J", "Q", "K", "A"} ngay sau thẻ được đánh số mà không cần vòng lặp thứ hai. – Josh
@schwobaseggl Dòng này ném một lỗi kiểu: "TypeError: loại toán hạng không được hỗ trợ (s) cho +: 'phạm vi' và 'danh sách'" – Josh