νμ΄μ¬μμ list μ dictionary λ κ±°μ νμμ μΈ μμ. μ΄κ±° λκ°λ κ°λ μ κΌ μ§κ³ λμ΄κ°μΌκ² λ€.
λκ° λ€ λ΄μ₯ μλ£ν type
1. 리μ€νΈμ νΉμ§
- μ¬λ¬ λ°μ΄ν°λ₯Ό μμμκ² λ΄κΈ° μν΄μ μ¬μ©λλ μλ£ν
- ν μΈμ΄μ array μ μ μ¬νλ μλ£νμ μ νμ΄ μμ
- νμ΄μ¬μμ κ°μ₯ λ²μ©μ μΌλ‘ μ¬μ©λλ€κ³ ν μ μμ
- κ°λ³(mutable) μλ£νμ΄κΈ° λλ¬Έμ 리μ€νΈ μμ± νμ μμ λ‘κ² μλ‘μ΄ λ°μ΄ν°λ₯Ό μΆκ°νκ±°λ, κΈ°μ‘΄ λ°μ΄ν°λ₯Ό λ³κ²½ λλ μ κ±°ν μ μμ
- νμ΄μ¬μ νΉμ§μΈ λμ νμ΄ν(dynamic typing) λμ μ΄ list μμ μ¬λ¬ νμ μ λ°μ΄ν°λ₯Ό μ μ₯ν μ μμ
* dynamic typing λμ νμ΄ν : μ μ₯ν λ°μ΄ν° νμ μ λͺ μνμ§ μκ³ λ μ μΈν μ μλ..
* κ³ λ‘ κΈ°μ‘΄μ μ¬μ©νλ μΈμ΄(js..)μμ array μ μ μ¬νλ€κ³ μκ°νκΈ° μ¬μ΄λ° array μ²λΌ μλ£ν fix μν€κ³ μΆμΌλ©΄ νν(tuple) μ¬μ©ν΄μΌν¨
2. 리μ€νΈ μμ±
- [] μμ μΌν(,) λ‘ κ΅¬λΆν΄μ λμ΄ νλ©΄ λλ€.
- μμμ λ§νλ―μ΄ type μ ꡬμ λ₯Ό λ°μ§ μμΌλ―λ‘ λ€μν λ°μ΄ν°λ₯Ό μ§μ ν μ μλ€.
>>> [1, 3.14, 'A', True, None, {'b': 2}, ['c', 'd'], lambda x: x * x]
[1, 3.14, 'A', True, None, {'b': 2}, ['c', 'd'], <function <lambda> at 0x1012471a0>]
- μμΌλ‘ μ΄λ€ data λ₯Ό λ°μμ€κΈ° μν΄μ λΉ list λ₯Ό μ μΈνκ³ μΆλ€λ©΄ [] 곡백 list λ₯Ό μ μΈνκ±°λ κ·Έλ₯ list() λ΄μ₯ ν¨μλ₯Ό νΈμΆν΄μ£Όλ©΄ λλ€.
>>> []
[]
>>> list()
[]
- κ·Έ μ΄μΈμ list νμ©λ²
>>> list({'A', 'B', 'C'}) # ννμ 리μ€νΈλ‘ λ³ν
['A', 'B', 'C']
>>> list(range(10)) # range κ°μ²΄λ₯Ό 리μ€νΈλ‘ λ³ν
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(enumerate(['A', 'B', 'C'])) # enumerate κ°μ²΄λ₯Ό 리μ€νΈλ‘ λ³ν
[(0, 'A'), (1, 'B'), (2, 'C')]
μλ£νμ΄ μ§μ λμ΄μλ κ²(tuple)λ 리μ€νΈμ λ£μ μ μκ³ , range ν¨μ ν΅ν΄μ μ«μ λμ΄λ κ±Έ 리μ€νΈμ λ£μ μλ μλ€.
λν μμκ° μλ μλ£ν(list, set, tuple, dictionary, string)μ μ λ ₯μΌλ‘ λ°μ μΈλ±μ€ κ°μ ν¬ν¨νλ enumerate κ°μ²΄λ list μ λ£μ΄μ 보κ΄ν μ μλ€. κ·Έλ₯ λ€ λ€μ΄κ°λ λ°κ΅¬λ λΌκ³ μκ°νλ©΄ λ λ―.
3. λ°μ΄ν° μΆκ°
- js μμ .push κ° μλ―μ΄ python μμλ append() κ° μλ€. : λ€μ κ³μ μλ κ²
>>> fruits = []
>>> fruits.append('Apple')
>>> fruits.append('Banana')
>>> fruits.append('Cherry')
>>> fruits
['Apple', 'Banana', 'Cherry']
- κ·Όλ° λ λ΄κ° μνλ μμΉμ κ°μ λ£μ΄μ€μΌ ν λκ° μλλ°.. κ·Έλλ insert() λ©μλλ₯Ό μ¬μ©ν΄λ³΄μ.
>>> fruits.insert(0, 'Mango')
>>> fruits
['Mango', 'Apple', 'Banana', 'Cherry']
>>> fruits.insert(1, 'Orange')
>>> fruits
['Mango', 'Orange', 'Apple', 'Banana', 'Cherry']
* insert() μ¬μ© μ μ£Όμ μ : νμ΄μ¬μ list μ κ²½μ° random access(무μμ μ κ·Ό)μ μ΅μ νλ μλ£ κ΅¬μ‘°μ¬μ insert() μ¬μ©νκ² λλ©΄.. κΈ°μ‘΄ λ°°μ΄ λ΄μ μλ λ€μ λ§μ data λ€μ μ- νμΉΈμ© λ€λ‘ λ‘κΈ°λΌκ³ ν΄μΌν΄μ μ±λ₯μ λΆλ¦¬νλ€.
-> ν΄κ²° λ°©λ² : λ§μ½μ list μ μͺ½μ data λ₯Ό λ°μ΄λ£μ κ²½μ°κ° λ§λ€λ©΄? deque μ queue κ°μ μλ£νμ κ³ λ €ν΄λ³΄λλ‘ νμ.
4. λ°μ΄ν° μ κ·Ό
- index μ¬μ©ν΄μ μ κ·Όνλ€. list[index] νμμΌλ‘ μ κ·Ό.
>>> fruits[0]
'Mongo'
>>> fruits[2]
'Apple'
- python μ κ²½μ°λ μμ index λ μ§μ. μμ μΈλ±μ€μ κ²½μ° λ€μμ λͺλ²μ§Έμ μλμ§ κ°μ§κ³ μ¨λ€.
μ¦. list[-index] = list[len(list)-index] μ μλ―Έ
>>> fruits[-1] # fruits[len(fruits) - 1]
'Cherry'
>>> fruits[-3] # fruits[len(fruits) - 3]
'Apple'
5. 리μ€νΈ μ¬λΌμ΄μ±
- νΉμ λ²μμ λ°μ΄ν° μ κ·Όμ νΈνκ² ... .~!!!
- λκ΄νΈ μμ : κΈ°νΈ μ¬μ©ν΄μ μ κ·Ό μνλ λ²μ μμ index μ μ’ λ£ index λͺ μ ν΄μ£Όλ©΄ λ¨.
>>> fruits = ['Mongo', 'Orange', 'Apple', 'Banana', 'Cherry']
>>> fruits[1:3]
['Orange', 'Apple']
- μμ© ver 1 : μμ μΈλ±μ€ μλ΅ μ μ²μλΆν° μμ, μ’ λ£ μΈλ±μ€ μλ΅ μ list λ§μ§λ§ κΉμ§ λ²μμ ν¬ν¨
>>> fruits[:3]
['Mongo', 'Orange', 'Apple']
>>> fruits[1:]
['Orange', 'Apple', 'Banana', 'Cherry']
- μμ© ver 2 : λκ΄νΈ κΈ°νΈ νλ² λ μ¨μ μμ μ¬μ΄ κ°κ²© μ§μ λ κ°λ₯ ::
>>> fruits[::2]
['Mongo', 'Apple', 'Cherry']
- μμ© ver 3 : μμ© ver2 μ κ°λ μ μ¬μ©ν΄μ 리μ€νΈ κ±°κΎΈλ‘ λ€μ§μ 볡μ¬λ³Έλ μ½κ² λ±μ΄λ΄μ€
>>> fruits[::-1]
['Cherry', 'Banana', 'Apple', 'Orange', 'Mongo']
6. λ°μ΄ν° κ°±μ
- κΈ°μ‘΄μ μΈλ±μ€μ κ° μ§μ΄ λ£μ΄μ£Όλ©΄ error μμ΄ κ·Έλ₯ κ·Έ μμΉμ data κ° μΉνλ¨
- μμ μ¬λΌμ΄μ± κΈ°λ²μ μ¬μ©ν΄μ μ¬λ¬ λ°μ΄ν°λ₯Ό νκΊΌλ²μ κ°±μ ν μλ μμ
>>> fruits[1] = 'Kiwi'
>>> fruits
['Mongo', 'Kiwi', 'Apple', 'Banana', 'Cherry']
>>> fruits[2:4] = ['Lemon', 'Grape']
>>> fruits
['Mongo', 'Kiwi', 'Lemon', 'Grape', 'Cherry']
7. λ°μ΄ν° μμ
- λ°©λ² 1. remove(data) λ‘ dataλ₯Ό μΈμλ‘ λκΈ°λ λ°©λ²
- λ°©λ² 2. pop() λ©μλ μ¬μ©ν΄μ index λκΈ°λ λ°©λ²
>>> fruits = ['Mongo', 'Kiwi', 'Apple', 'Banana', 'Cherry']
>>> fruits.remove('Kiwi')
>>> fruits
['Mongo', 'Apple', 'Banana', 'Cherry']
// μΈμ μ§μ μν΄μ£Όλ©΄ 맨 λ€μ λ°μ΄ν° μμ ν¨
>>> fruits.pop()
'Cherry'
>>> fruits
['Mongo', 'Apple', 'Banana']
>>> fruits.pop()
'Cherry'
>>> fruits
['Mongo', 'Apple', 'Banana']
- λ°©λ² 3. pop μ²λΌ λ°μ΄ν°λ₯Ό μμ νλ, μμ ν λ°μ΄ν°λ₯Ό μ»κ³ μΆμ§ μμ κ²½μ°λ del μ°μ°μ μ¬μ©ν΄λ λ¨.
>>> del fruits[1]
>>> fruits
['Mongo', 'Banana']
8. 리μ€νΈ μν
- 리μ€νΈμ μλ data κ° μ 체 κ°μ§κ³ μ€κ³ μΆμΌλ©΄ ? for .. in.. 루ν νμ°λ©΄ λ¨
>>> fruits = ['Mongo', 'Apple', 'Banana']
>>> for fruit in fruits:
... print(fruit)
...
Mongo
Apple
Banana
- μΈλ±μ€ λ²νΈλ κ°μ΄ κ°μ§κ³ μ€κ³ μΆμΌλ©΄ enumerate() ν¨μ νμ©ν κ²
for idx, fruit in enumerate(fruits):
... print(idx, fruit)
...
0 Mongo
1 Apple
2 Banana
9. λ°μ΄ν° μ‘΄μ¬ μ¬λΆ νμΈ
- in μ°μ°μλ₯Ό μ¬μ©νλ©΄ νΉμ λ°μ΄ν°κ° 리μ€νΈμ λ€μ΄μλμ§ νμΈν μ μμ.
- νμ© tip: κ°μ true/false λ‘ λ±μ΄μ£Όλ―λ‘ μ΄ μμ±μ μ΄μ©ν΄ if λ¬Έ μ¬μ©νλ©΄ λ¨.
>>> fruits = ['Mongo', 'Apple', 'Banana']
>>> "Apple" in fruits
True
>>> "Lemon" in fruits
False
>>> "Lemon" not in fruits
True
10. 리μ€νΈ λ³ν©
- μ¬λ¬ κ° λ¦¬μ€νΈ ν©μΉ λ λ¨μνκ² λνκΈ°(+) μ°μ°μ μ¬μ©ν΄μ£Όλ©΄ λ¨
- js μ ... μ°μ°μ (μ κ° μ°μ°μ) μ λΉμ·ν λ¬Έλ²λ μλλ° * μ°μ°μ μ¬μ©ν΄μ λκ΄νΈ μμ ν©μΉ 리μ€νΈλ₯Ό ,λ‘ κ΅¬λΆνμ¬ λμ΄νλ©΄ λ¨
>>> li1 = ["A", "B"]
>>> li2 = ["C", "D"]
>>> li1 + li2
['A', 'B', 'C', 'D']
>>> [*li1, *li2]
['A', 'B', 'C', 'D']
- νμ©μ μνλ©΄ λ ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μκ² λλλ°. κ·Έ μμ
>>> [1, 2, *li1, 3, 4, *li2] # [1, 2] + li1 + [3, 4] + li2
[1, 2, 'A', 'B', 3, 4, 'C', 'D']
11. 리μ€νΈ 볡μ
- κ³±νκΈ°(*) μ°μ°μ μ¬μ©νλ©΄ κ°μ 리μ€νΈ μ¬λ¬ λ² λ³΅μ κ°λ₯
>>> li = ["A", "B", "C"]
>>> li * 1
['A', 'B', 'C']
>>> li * 2
['A', 'B', 'C', 'A', 'B', 'C']
12. 리μ€νΈ νμ₯
- νλμ 리μ€νΈμ λ€λ₯Έ 리μ€νΈμ λͺ¨λ λ°μ΄ν°λ₯Ό μΆκ°νκ³ μΆμΌλ©΄ extend() λ©μλλ₯Ό μ¬μ©νλ©΄ λ¨
>>> li1 = ["A", "B"]
>>> li2 = ["C", "D"]
>>> li1.extend(li2)
>>> li1
['A', 'B', 'C', 'D']
13. 리μ€νΈ λλ±μ± νμΈ
- 리μ€νΈμ κ²½μ° μμκ° μμ΄μ.. κ°μ data μ¬λ μμκ° λ€λ₯΄λ©΄ λ€λ₯Έ 리μ€νΈλ‘ μΈμν¨ (λΉμ°ν κ±°μ)
14. 리μ€νΈμ ν¨κ» μΈ μ μλ λ΄μ₯ ν¨μ
- len(list) : 리μ€νΈ κΈΈμ΄ κ° λ°ν
- min(list) : 리μ€νΈμμ κ°μ₯ μμ data κ° λ°ν
- max(list) : 리μ€νΈμμ κ°μ₯ ν° data κ° λ°ν
- JS μμλ κ·Έλ λ― filter() λ map() μ νμ©νλ κ²λ μ’μ λ―
python μ νμ₯μ±λ μ’κ³ μ§μν΄μ£Όλ κΈ°λ₯λ λ§μ
κ·Όλ° μλ£ λͺ μκ° μλλκΉ λ°μ΄ν° μ§μ΄ λ£μ΄μ€ λ νμΈμ΄ νμ μΌ κ² κ°λ€.
λΉμ₯μ μ€λ₯λ₯Ό μ λ±μ λΏ νμ λ°μ΄ν° κ°κ³΅νλ λΆλΆμμ μ€λ₯λΌλ ν°μ Έλ²λ¦¬λ©΄ νλνλ μ°ΎμμΌν ν λ
λ€μμλ μκ°μ΄ λλ©΄ python μμ list μ μλμ°λ§₯μ΄λΌκ³ νλ dictionary λ ν¬μ€ν ν΄λ³΄λλ‘ νκ² λ°
dictionary λ λ€λ₯Έ κ°λ°ν λλ λ§μ΄ μ ν κΈ°νκ° μμλλ° λλ RPA κ°λ°μμ λ§μ΄ μ¬μ©ν μ μ μ΄ μμ΄μ μ무λλ μ΄ν΄μ μ€λͺ μ΄ μ½μ§ μμκΉ μΆλ€.