【Python入門】Python初心者はこれだけでよし！入門編(part2)

ども！Masaです。
<img src="https://storage.googleapis.com/edd-homepage/IntroductionEdD/img/masa.png" width=30%>
#なんのために共有するのか？
後で見返す自分の備忘録にするため。
書くことでより記憶に届けやすくするため。

そして、短時間で多くの学びがあるように
得た知識・体験したものの要点を共有します！
Pythonの初心者が自走できるようになるまでのあしあとを残すことによって、後から学習する人がどういう道のりをたどればいいのかわかるようにするために書きます！

**疑問が解消されたり、不安が少しでも減ったら、左のいいねボタンをポチッとお願いします！**

[入門編(part1)はこちら](https://qiita.com/pocket_ma_kun/items/7194f9fa2d703774be81)
#リスト
Pythonでリストを書くとこうなる。

```python:py
list = ['apple','banana','orange']
print(list[0]) #apple
```
C言語などでいう「配列」と思えばOK。

##リストへの追加、リストからの削除

###appendメソッド
appendメソッドによって、リストの末尾に
新しく要素が追加されます。

```python:py
list = ['apple','banana','orange']
list.append('peach') #['apple','banana','orange','peach']
```

###extendメソッド
appendは指定したものをそのまま追加。
extendはリスト同士の結合(拡張にも見える)。

```python:py
alist = [3, 1, 4]
alist.append([1, 5, 9])
print(alist) #[3, 1, 4, [1, 5, 9]]

blist = [3, 1, 4]
blist.extend([1, 5, 9])
print(blist) #[3, 1, 4, 1, 5, 9]

#extendの失敗例
clist = ['banana']
clist.extend('apple')
print(clist) #['banana','a','p','p','l','e'] #これに注意ｗ

#正しくはこう
dlist = ['banana']
dlist.extend(['apple']) #[]で囲ってリストを引数にしている
print(dlist) #['banana', 'apple']

```
###insertメソッド

```python:py
list = ['A', 'B', 'C']

list.insert(1, 'D')
print(list)     # ['A', 'D', 'B', 'C']
```


###removeメソッド
指定の「値」の要素を削除する
（ただし、複数存在する場合は、最初の１つのみが削除される）

```python:py
list = ['A', 'B', 'C', 'B', 'D']
list.remove('B') #'B'という値を指定
print(list)     # ['A', 'C', 'B', 'D']
```

###popメソッド
指定のインデックスの要素を削除する

```python:py
list = ['A', 'B', 'C', 'B', 'D']
list.pop(1) #'B'の入っている2番目のインデックスを指定
print(list)     # ['A', 'C', 'B', 'D']
```

###スライス
リストの中のコンマを境目にして、あたかもリストを切って(スライス)新しくリストを作成することができる。まずはサンプルをコピペしてみてくださいな。

```python:python
list = ['apple','banana','orange']
slice1 = list[1:] #1つ目のコンマよりも右側をリストとして作成
print(slice)  #['banana', 'orange']

slice2 = list[:1] #1つ目のコンマよりも左側をリストとして作成
print(slice2) #['apple'] 

slice3 = list[:-1] #リストの後ろから1番目のコンマより左側をリストとして作成
print(slice3) #['apple','banana']
```

どういう法則になっているのか？ってのがコレ
`[何番目のコンマの右隣の要素から : 何番目のコンマの右側の要素から左側とを : いくつ飛ばしでリストにしてね]`
というルールでスライスされる。

つまり、、、他の例を出すと

```python:python
list = [1, 2, 3, 4, 5, 6, 7, 8]
print(list[:: 2]) #リスト全部を2つ飛ばしでリストに。
#[1, 3, 5, 7]

print(list[1:: 2]) #リストの1つ目のコンマから右側を2つ飛ばしでリストに。
#[2, 4, 6, 8]

print(list[::-1]) #リスト全部を、-1飛ばし＝「逆に」リストに。
#[8, 7, 6, 5, 4, 3, 2, 1]

print(list[3::-1]) #リストの3つ目のコンマの右の要素を軸にリスト全部を、逆にリストに。
#[4, 3, 2, 1]
```

#辞書型(ディクショナリ)
基本的には、こう書く

```python:python
dict = {'apple':1, 'banana':2, 'peach':3}
print(dict) #{'apple':1, 'banana':2, 'peach':3}
print(dict['apple']) # 1
print(dict['banana']) # 2

```
ポイントは「キー」と「バリュー」のセットであるということ。
「キー」がわかれば「バリュー」がわかる。
（「バリュー」がわかっても「キー」がわかるとは限らない）

##リストと辞書型の内包表記
ふつー、数字が100までのlistをつくろうと思ったらこうだけど

```python:python
list = [1,2,3,4,5,6,7,8,9,・・・,100] #100まで続ける
```
内包表記というものを使うとこう書くことができる！

```python:python
list = [num for num in range(101)]
print(list)
```

辞書型でも内包表記は使うことができる。

ふつーに辞書をつくるとこうだけど

```python:py
dict1 = {'apple':1,'banana':2,'cclemon':3}
```

2つのリストから内包表記で書くこともできる

```python:py
list1 = ['apple','banana','cclemon']
list2 = [1,2,3]
dict = {i:j for i,j in zip(list1,list2)}
print(dict)
```
※ zip関数は2つのリストなどを同時にイテレーションするときに使うと便利な関数

#最後に
Pythonを学習していると1行で書けるの！？という感動が多くハマってます。
もっともっと学習していきたいですね！

**疑問が解消されたり、不安が少しでも減ったら
左のいいねボタンをポチッとお願いします！**
ではではドロン！
<img src="https://storage.googleapis.com/edd-homepage/IntroductionEdD/img/masa.png" width=30%>
処女作：エロ診断メーカー(共同製作：Kei)
https://ero-shindan.herokuapp.com/

Ed.D~Eros Driven Development~
https://storage.googleapis.com/edd-homepage/IntroductionEdD/index.html

[入門編(part1)はこちら](https://qiita.com/pocket_ma_kun/items/7194f9fa2d703774be81)


#参考文献
スライスについて
https://www.pythonweb.jp/tutorial/string/index11.html

insertメソッドについて
https://www.pythonweb.jp/tutorial/list/index7.html