tôi không thể sử dụng itertoolsTiếp tục cho đến khi tất cả các vòng lặp được thực hiện Python
Vì vậy, các mã có vẻ khá đơn giản, nhưng tôi đang gặp rắc rối suy nghĩ của thuật toán để giữ một máy phát điện chạy cho đến khi tất cả các lần lặp đã được xử lý xong.
Ý tưởng của hàm là để mất 2 iterables như các thông số như thế này ...
(['a', 'b', 'c', 'd', 'e'], [1,2,5])
Và những gì nó làm là mang lại những giá trị ...
a, b, b, c, c, c, c, c
Tuy nhiên, trong trường hợp lần lặp thứ hai chạy hết các phần tử đầu tiên, hàm chỉ đơn giản là lặp lại giá trị còn lại một lần ...
Vì vậy, các giá trị còn lại sẽ được lặp như thế này:
d, e
def iteration(letters, numbers):
times = 0
for x,y in zip(letters, numbers):
try:
for z in range(y):
yield x
except:
continue
[print(x) for x in iteration(['a', 'b', 'c', 'd'], [1,2,3])]
Tôi đang gặp khó khăn bỏ qua StopIteration đầu tiên và tiếp tục hoàn thành.
Vâng đó là nơi tôi đang gặp vấn đề với là tốt. Tôi không biết làm thế nào để có được sự lặp lại để tiếp tục cùng nhau đồng thời để có được 1 giá trị, và b nhận giá trị 2. – FlyingBumble
Điều gì sẽ xảy ra với d và e? –
Khi có thể lặp lại với các con số hết, các vòng lặp còn lại trong lần đầu tiên sẽ chỉ được tạo một lần mỗi lần. – FlyingBumble