teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

もっと単純でいけた

2019/01/12 05:51

投稿

YouheiSakurai
YouheiSakurai

スコア6151

answer CHANGED
@@ -4,6 +4,6 @@
4
4
  iterable = iter(range(1, 11))
5
5
  for i in iterable:
6
6
  print(i)
7
+ if i == 3:
7
- if i == 3 and next(iterable, None) is None:
8
+ next(iterable, None)
8
- break
9
9
  ```

1

汎用的を消す&もうちょっと読みやすく

2019/01/12 05:51

投稿

YouheiSakurai
YouheiSakurai

スコア6151

answer CHANGED
@@ -1,25 +1,9 @@
1
- **汎用的N個先を飛ばしたいなら**
1
+ **ただ単純1個先を飛ば**
2
2
 
3
3
  ```python
4
- from functools import partial
5
- from itertools import filterfalse
6
- from operator import contains
7
-
8
- N = 1
9
- skip = set()
10
- skip_in = partial(contains, skip)
11
- for i in filterfalse(skip_in, range(1, 11)):
12
- print(i)
13
- if i == 3:
14
- skip.add(i + N)
15
- ```
16
-
17
- **ただ単純に1個先を飛ばしたいなら**
18
-
19
- ```python
20
4
  iterable = iter(range(1, 11))
21
5
  for i in iterable:
22
6
  print(i)
23
- if i == 3 and not next(iterable, None):
7
+ if i == 3 and next(iterable, None) is None:
24
8
  break
25
9
  ```