Python

list

11mia 2020. 9. 9. 23:08

#1. append

a = [10, 20, 30]

a.append(50) #a[len(a):] = [50] 와 동일
print(a, ', length : ', len(a))

a.append([40, 2]) # a[len(a):] = [[40, 2]] 와 동일
print(a, ', length : ', len(a))

====Result====
[10, 20, 30, 50] , length :  4
[10, 20, 30, 50, [40, 2]] , length :  5

#2. extend

a = [10, 20, 30]

a.extend([50,60])
print(a,', length : ',len(a))

====Result====
[10, 20, 30, 50, 60] , length :  5

#3. insert

a = [10, 20, 30]

a.insert(1, 100)
print(a, ', length : ', len(a))

a.insert(len(a), -1)
print(a, ', length : ', len(a))

a.insert(1, ['a', 'b'])
print(a, ', length : ', len(a))

a[1:1] = ['a', 'b']
print(a, ', length : ', len(a))

====Result====
[10, 100, 20, 30] , length :  4
[10, 100, 20, 30, -1] , length :  5
[10, ['a', 'b'], 100, 20, 30, -1] , length :  6
[10, 'a', 'b', ['a', 'b'], 100, 20, 30, -1] , length :  8

#4. pop

a = [10, 20, 30, 40, 50, 60]

for i in range(3):
    a.pop() # del a[len(a)-1] 와 동일
    print(a, ', length : ', len(a))

====Result====
[10, 20, 30, 40, 50] , length :  5
[10, 20, 30, 40] , length :  4
[10, 20, 30] , length :  3
a = [10, 20, 30, 40, 50, 60]

for i in range(3):
    a.pop(0) # del a[0] 와 동일
    print(a, ', length : ', len(a))
    
====Result====
[20, 30, 40, 50, 60] , length :  5
[30, 40, 50, 60] , length :  4
[40, 50, 60] , length :  3

#5. remove

a = [10, 20, 30, 40, 50, 60]

for i in range(6, 3, -1):
    a.remove(i*10)
    print(a, ', length : ', len(a))

====Result====
[10, 20, 30, 40, 50] , length :  5
[10, 20, 30, 40] , length :  4
[10, 20, 30] , length :  3
a = [10, 20, 30, 50, 30, 60]

a.remove(30) #앞쪽부터 삭제
print(a, ', length : ', len(a))

====Result====
[10, 20, 50, 30, 60] , length :  5

#6. index

a = [10, 20, 30, 40, 30, 60]

print('index of 10 : ', a.index(10))
print('index of 30 : ', a.index(30)) # 앞에서부터

====Result====
index of 10 :  0
index of 30 :  2

#7. count

a = [10, 20, 30, 40, 30, 60]

print('count of 10 : ', a.count(10))
print('count of 30 : ', a.count(30))

====Result====
count of 10 :  1
count of 30 :  2

#8. reverse

a = [10, 20, 30, 40, 30, 60]
a.reverse()
print(a)

====Result====
[60, 30, 40, 30, 20, 10]

#9. sort

a = [10, 4, 20, 50, 2, 0]
a.sort()
print(a)

====Result====
[0, 2, 4, 10, 20, 50]

#10. clear

a = [10, 4, 20, 50, 2, 0]
a.clear() # del a[:]와 동일
print(a)

====Result====
[]

#11. empty check

print('# case 1. len')
a = [10, 20]

while True:
    if not len(a):
        print('Empty')
        #print('a[-1] = ', a[-1]) #IndexError: list index out of range
        break;
    else:
        print('Not Empty')
        print('a[-1] = ', a[-1])
        a.clear()

print('# case 2. Object')
a = [10, 20]

while True:
    if a:
        print('Not Empty')
        print('a[-1] = ', a[-1])
        a.clear()
    else:
        print('Empty')
        break;

====Result====
# case 1. len
Not Empty
a[-1] =  20
Empty
# case 2. Object
Not Empty
a[-1] =  20
Empty

#12. copy

print('1. assign')
a = [1, 2, 3, 4]
b = a
print(a is b)

b[2] = 10
print('a = ', a, ' / b = ', b)

print('\n2. copy')
c = a.copy()
print(a is c)
print(a == c)

c[0] = 100
print('a = ', a, ' / b = ', b, ' / c = ', c)

====Result====
1. assign
True
a =  [1, 2, 10, 4]  / b =  [1, 2, 10, 4]

2. copy
False
True
a =  [1, 2, 10, 4]  / b =  [1, 2, 10, 4]  / c =  [100, 2, 10, 4]

#13. min, max

a = [21, 45, 2, 50, 38]

print('#1. if')
smallest = a[0]
for i in a:
    if smallest > i:
        smallest = i
print('smallest : ', smallest)

print('\n#2. sort')
a.sort()
print('smallest : ', a[0])

print('\n#3. min')
a = [21, 45, 2, 50, 38]
print('smallest : ', min(a))

====Result====
#1. if
smallest :  2

#2. sort
smallest :  2

#3. min
smallest :  2
a = [21, 45, 2, 50, 38]

print('#1. if')
largest = a[0]
for i in a:
    if largest < i:
        largest = i
print('largest : ', largest)

print('\n#2. sort')
a.sort()
print('largest : ', a[-1])

print('\n#3. reversed sort')
a = [21, 45, 2, 50, 38]
a.sort(reverse=True)
print('largest : ', a[0])

print('\n#4. min')
a = [21, 45, 2, 50, 38]
print('largest : ', max(a))


====Result====
#1. if
largest :  50

#2. sort
largest :  50

#3. reversed sort
largest :  50

#4. min
largest :  50

#14. sum

a = [21, 45, 2, 50, 38]

print('#1. for')
s = 0
for i in a:
    s += i
print('sum : ', s)

print('\n#2. sum')
print('sum : ', sum(a))

====Result====
#1. for
sum :  156

#2. sum
sum :  156

#15. list comprehension

  • [식 for 변수 in 리스트]
  • [식 for 변수 in 리스트 if 조건식]
  • list(식 for 변수 in 리스트]
  • list(식 for 변수 in 리스트 if 조건식)
a = [i for i in range(10)]
print(a)

b = [i*3 for i in range(3)]
print(b)

c = [i for i in range(10) if i % 2 == 0]
print(c)

d = [i *j for i in range(1, 4)
          for j in range(1, 4)]
print(d)

e = list(i for i in range(4))
print(e)

====Result====
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 3, 6]
[0, 2, 4, 6, 8]
[1, 2, 3, 2, 4, 6, 3, 6, 9]
[0, 1, 2, 3]