for文で最初に何が起こり、次に何が起こりというように考えてみてください。
最初
fruits = ['apple', 'kiwi', 'plum']
fは'apple'
len(f)は5
len(f) < 5 はFalse
だから何もしない
その次
fruits = ['apple', 'kiwi', 'plum']
fは'kiwi'
len(f)は4
len(f) < 4 はTrue
fruits.insert(0, f) でfは['kiwi', 'apple', 'kiwi', 'plum']になる
fruits.pop()でfは['kiwi', 'apple', 'kiwi']になる
というを考えるのは大変なので、コードにprint文を入れてみます。
python
1fruits = ['apple', 'kiwi', 'plum']
2for f in fruits[:]:
3 print('A: fruits =', fruits)
4 print('B: f =', f)
5 if len(f) < 5:
6 fruits.insert(0, f)
7 print('C: fruits =', fruits)
8 fruits.pop()
9 print('D: fruits =', fruits)
これを実行してみると、
Python
1>>> fruits = ['apple', 'kiwi', 'plum']
2>>> for f in fruits[:]:
3... print('A: fruits =', fruits)
4... print('B: f =', f)
5... if len(f) < 5:
6... fruits.insert(0, f)
7... print('C: fruits =', fruits)
8... fruits.pop()
9... print('D: fruits =', fruits)
10...
11A: fruits = ['apple', 'kiwi', 'plum']
12B: f = apple
13A: fruits = ['apple', 'kiwi', 'plum']
14B: f = kiwi
15C: fruits = ['kiwi', 'apple', 'kiwi', 'plum']
16'plum'
17D: fruits = ['kiwi', 'apple', 'kiwi']
18A: fruits = ['kiwi', 'apple', 'kiwi']
19B: f = plum
20C: fruits = ['plum', 'kiwi', 'apple', 'kiwi']
21'kiwi'
22D: fruits = ['plum', 'kiwi', 'apple']
こうやって調べる習慣を付けましょう。