集合简单介绍
在python语言中,集合就是多个数据的组合,不一定要是一种类型哈,比如说在Java语言中,一个集合中的类型就必须是同一类型
有四种常用的集合:
list:列表,可以重复
tuple:固定列表,就是不能修改其中的元素
dir:键值对类型集合
set:只有键值的dir(即只有key,没有value)
常用方法:
(x表示一个值,i表示一个序数,[]表示可选参数)
list
append( [x] ):插入x值
insert( [i] , x ) :在序号为i的位置插入x
extends(iterable) 可迭代对象,一次性添加多个
pop( [i] ) 移除序号为i位置的元素
remove( x ) 移除第一个元素值为x的元素
index( x ) 返回元素值为x的序号
count( x ) 返回元素值x在列表中出现的次数
clear() 清空整个列表
sort() 排序
reverse() 逆序
copy() 复制
tuple(不能对其中的元素进行修改,所以就不能进行添加、删除、修改)
index( x ) 返回元素值为x的序号
count( x ) 返回元素值x在列表中出现的次数
dir 和 set
def main2():
di = {'name':'simfg'}
# 添加
di['age'] = 12
di.setdefault('hobby','eating')
print(di)
print("--------")
# 修改
di.update(age=20)
print(di)
print("--------")
# 删除
del di['hobby']
print(di)
print("--------")
# set(就是dir的key值,会自动去重)
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)
if __name__ == '__main__':
main2()
tuple ,不可变的list
先看看一段有趣的代码
def main():
print(len('hello'))
a = 'hello',
print(len(a))
你猜这一函数运行是打印出什么?
你有没有对这个结果感到疑惑呢?
值得注意的是
a = 'hello',
结尾有一个逗号,这就意味着a是一个指含有一个元素tuple
再来一段
def main():
t = 12345, 54321, 'hello!'
print(t)
x,y,z = t
print(x)
print(y)
print(z)
# 判断x这个参数变量的值是不是存在与t这个tuple中
print(x in t)
t 是一个tuple哈
x,y,z = t
t是一个tuple,将每一个元素分别赋予左侧的参数,注意一定要保证参数个数个tuple长度一样
花样 dir/set
创建一个dir或set
def main():
a = {x for x in 'abracadabra' if x not in 'abc'}
print(a)
b = dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
print(b)
c = dict(sape=4139, guido=4127, jack=4098)
print(c)
第一种方式,就是得到一个在一个字符串中得到所有字母除abc之外的set
第二种和第三种运行下你就明白了
处理集合的函数工具
def main():
# i表示序号
for i, v in enumerate(['tic', 'tac', 'toe']):
print(i, v)
print('-------')
# 获取反转的list
for i in reversed(range(1, 10, 2)):
print(i)
print('-------')
# 集合排序,默认是字母表
for i in sorted('acb'):
print(i)
print('-------')
ab = [1,10,100]
bc = [2,20,200]
cd = [3,30,300]
# 多个集合组合
for z in zip(ab,bc,cd):
print(z)
print('-------')
# 单个集合重组
df = [
[1,2,3],
[4,5,6],
[7,8,9]
]
for z in zip(*df):
print(z)
扫描左侧二维码,关注个人公众号:SimFG,让我们一起探索世界吧