li = list(range(10))
print(li)
# 切片 [start:end:steps] >= start & < end
print(li[2:5]) # [3, 4, 5]
print(li[:4]) # [0, 1, 2, 3]
print(li[5:]) # [6, 7, 8, 9]
print(li[0:20:3]) # [0, 3, 6, 9]
# 负值怎么处理?
print(li[5: -2]) # [5, 6, 7]
print(li[9:0:-1]) # [9, 8, 7, 6, 5, 4, 3, 2,1]
print(li[9::-1]) # [9 ... 0]
print(li[::-2]) # [9, 7, 5, 3, 1]
# 切片生成一个新的对象
print(li) # 还是保持原样
re_li = li[::-1]
print(re_li)
li = [1, 2, 3, '456', [1, 2, 3], {1: 'one', 2: 'two'}]
print(type(list))
print(type(li))
# 元素访问
print(li[0])
print(li[-1]) # li[len(li) - 1]
print(li[-2]) # li[len(li) - 2]
# 查找元素位置
print(li.index('456'))
print(li.index([1, 2, 3]))
# print(li.index(-1))
# 添加元素
l_a = [1, 2, 3]
l_a.append(4)
l_a.append(5)
l_b = [6, 7, 8]
l_a.extend(l_b) # 试下用append是什么结果
print(l_a)
#删除元素
del(l_a[-1]) #删除最后一个元素
del(l_a[0]) #删除第一个元素
print(l_a)
del(l_a[1]) #删除第二个元素
print(l_a)
l_a = []
if not l_a:
print('Empty') # not XX和is None不是一回事
if len(l_a) == 0:
print('Empty')
for i in li:
print(i)
for i in range(len(li)):
print(li[i])
t = (1, 2, 3, '456')
print(type(t))
# t[0] = 'a'
# t.append('x')
del(li[-1]) # del(list[index])
del(li[1])
del(li[-2])
print(li)
d={'name':'kang','age':22,'sex':'boy'}
for key in d.keys(): #遍历
print(d[key])
for key, value in d.items(): #遍历
print(key,value)
print('name' in d) #判断元素是否在字典里
a = set([1,2,3,6,5,2,3,6,5,9])
b = set([2,2,6,5,9,8,5,2,4])
print(a)
print(5 in a)
print(10 in a)
print(type(range(10)))
# 平方表
square_table = []
for i in range(5000):
square_table.append(i * i)
for i in range(5):
print(square_table[i])
square_generator = (x * x for x in range(50000))
print(type(square_generator))
for i in range(5):
print(next(square_generator))
def fib(limit):
n, a, b = 0, 0, 1
while n < limit:
yield b
a, b = b, a + b
n += 1
return 'done'
import traceback
f = fib(5)
print(type(f))
print(next(f))
print(next(f))
print(next(f))
print(next(f))
print(next(f))
try:
print(next(f))
except StopIteration:
traceback.print_exc()
for i in fib(5):
print(i)