python入门-容器

1.list 列表
# 初始化列表
li = [1, 2, 3, 'abc', 4.5, [2, 3, 4], {1:'one'}]    #可以是任意元素
#还有元组比如 li=(1,2,3) 只能写不能读

# 获取长度
print(len(li))
print('') #空一行

# 根据索引读写
print(li[0])
print(li[-1])#-1索引表示倒数第一个(其实是表示len(li)-1)

# 添加元素
li.append('a')   or  li += ['a']     #添加字符'a'
li.append([4, 5, 6])#[4,5,6]作为一个元素加入
li.extend([4, 5, 6])#4,5,6分别加入

# 删除元素
li = [1, 2, 3, 4, 5]
li.pop()    #删除最后一个
del(li[0])    #按索引删除

# 判断元素是否存在
print(6 in li)    #return true or false

# 判断列表是否为空
li = []
if not li:
    print('Empty')
else:
    print('Not empty')

# 遍历列表    注意for后要冒号
for i in li:
    print(i)
for i in range(len(li)):
    print(li[i])

# 字符串
s = 'abcdefg'#python不能直接修改字符串,转为list型再修改
li = list(s)    #这是可以按操作list方式操作s
s = ''.join(li)#list转回成字符串

#切片操作
li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(li[2:5])    #2<=index<5,左闭右开
print(li[:4])    # index<4
print(li[5:])    #5<=index
print(li[:])    #全部
print(li[0:6:2])    #0<=index<6,且间隔为2
print(li[3::2])    #3<=index,且间隔为2
# 负数索引
print(li[::-1])    #倒序打印
print(li[::-2])    #倒序且间隔为2打印
print(li[-6:-1:1])
print(li[-1::-1])

#注意 array aliases and copies
x = [1,2,3]
y = x    #这个操作只是给x起了一个别名,y,x都指向同一数组,修改x会同时修改y
#完全复制出一个新的就要用
y = x.copy() 或 y = x[:]    #注意与numpy区别,numpy里使用y = x[:]还是只是取个别名,只有np.copy(x)才是真的copy
         

(图片引自<程序设计导论-python语言描述>)

2.dictionary 字典
# 字典-索引与数据,一种内建映射,在需要类似哈希表结构时就会用字典
#以 key:value形式存储

# 初始化
d = {'a':1, 2:'b', 'c':3, 4:'d'}
print(d)

# 获取长度
print(len(d))

# 根据key读写
#方括号里是key
d['a'] = 100    #前提里面已经有‘a’这个key,然后改,否则就是添加了元素
print(d[4])    #key为4的那个value

# 添加元素
d['e'] = 5    #原本里面没有‘e’这个key

# 删除元素
del(d['a'])

# 判断key是否存在
if 'a' in d:
    print('a in d')

# 判断字典是否为空
d = {}
if not d:
    print('d is empty')
print('')

# 遍历
for k in d.keys():    #k就是对key循环
    print(str(k) + ': ' + str(d[k]))
for k, v in d.items():    #k就是对key循环,v就是对value循环
    print(str(k) + ': ' + str(v))

3.set 集合
# 初始化,里面不会有重复元素
s_a = set([1, 2, 3, 4, 5])
s_b = set([1, 1, 2, 2, 3, 4, 5])
print(s_a)
print(s_b)    #a,b里面元素一样

# 获取长度
print(len(s_a))

# 添加元素(重复的自动去掉)
s_a.add(6)
s_a.update([5, 6, 7, 8, 9])    #直接加上多个元素

# 删除元素
s_a.remove(8)

# 判断元素是否存在
print(1 in s_a)    #return true or false

# 判断集合是否为空
s_a = set([])
if not s_a:
    print('set is empty')
else:
    print('set is not empty')

# 遍历
for i in s_a:
    print(i)

# 集合操作
s_a = set([1, 2, 3, 4, 5])
s_b = set([4, 5, 6, 7, 8])
# 并集
print(s_a | s_b)
print(s_a.union(s_b))
# 交集
print(s_a & s_b)
print(s_a.intersection(s_b))
# 差集 s_a - (s_a and s_b)
print(s_a - s_b)
print(s_a.difference(s_b))
# 对称差
print(s_a ^ s_b)
print((s_a | s_b) - (s_a & s_b))
print(s_a.symmetric_difference(s_b))



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值