python容器及容器的访问使用

  • 列表切片
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)

猜你喜欢

转载自blog.csdn.net/qq_34409249/article/details/88529902