#coding:utf-8
#リストのコピー
import copy
import os
os.system("clear")
lista = [0, 1, [2, 3]]
#print(lista[0],lista[1],lista[2],lista[2][0],lista[2][1])
listb = lista # assignment代入
listc = lista.copy() # shallow copy
listd = copy.deepcopy(lista) # deep copy
print(lista,listb,listc,listd)
lista[1] = 100
lista[2][0] = 200
print(lista,listb,listc,listd)
a = ["apple","banana","kiwi","orange"]
b = a
c = a.copy()
d = copy.deepcopy(a)
print(a,b,c,d)
a[1] = "バナナ"
print(a,b,c,d)
#リストの内包表示
base = [1,2,3,4]
new = [i*2 for i in base]
print(new)
#clear, remove ,pop, del
#2種類のリスト:棚stack FILO First In Last Out
#FCLS First ComeLast servise
import random
stack = []
for i in range(10):
stack.append(random.randint(2,50))
print(stack)
result = 0
for i in range(10):
result += stack.pop()
print(f'総和={result}')
print(stack)
#待ち行列はQUEUE:FILO Firat In Firast Out
#FCSS First ComeLast servise
queue = []
for i in range(10):
name = input("お名前は: ")
queue.append(name)
print(queue)
for i in range(10):
call = queue.pop(0)
print(call)
# #指定した値と同じ要素を検索し、最初の要素を削除: remove()
# l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
# l.remove('Alice')
# print(l)
# # ['Bob', 'Charlie', 'Bob', 'Dave']
# #インデックス・スライスで位置・範囲を指定して削除: del
# l = [0, 10, 20, 30, 40, 50]
# del l[0]
# print(l)
# # [10, 20, 30, 40, 50]
# del l[3]
# print(l)
# # [10, 20, 30, 50]
# del l[-1]
# print(l)
# # [10, 20, 30]
# del l[-2]
# print(l)
# # [10, 30]
# #スライスで範囲を指定すると、複数の要素を一括で削除できる。
# l = [0, 10, 20, 30, 40, 50]
# del l[2:5]
# print(l)
# # [0, 10, 50]
# l = [0, 10, 20, 30, 40, 50]
# del l[:3]
# print(l)
# # [30, 40, 50]
# l = [0, 10, 20, 30, 40, 50]
# del l[-2:]
# print(l)
# # [0, 10, 20, 30]
# #全範囲を指定してすべての要素を削除する
# l = [0, 10, 20, 30, 40, 50]
# del l[:]
# print(l)
# # []
# #スライスでの範囲指定を[start:stop:step]として増分stepを指定すると、飛び飛びの複数の要素を一括で削除できる。
# l = [0, 10, 20, 30, 40, 50]
# del l[::2]
# print(l)
# # [10, 30, 50]
# #条件を満たす複数の要素を一括で削除: リスト内包表記
# l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# evens = [i for i in l if i % 2 == 0]
# print(evens)
# # [0, 2, 4, 6, 8]
# odds = [i for i in l if i % 2 != 0]
# print(odds)
# # [1, 3, 5, 7, 9]
# print(l)
# # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# l = ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
# print(l)
# # ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
# print([s for s in l if s != 'Bob'])
# # ['Alice', 'Charlie', 'David']
# print([s for s in l if s.endswith('e')])
# # ['Alice', 'Charlie']
# print(list(set(l)))
# # ['Alice', 'Charlie', 'David', 'Bob']