列表[,] 元组(,) 字典{:,:} 集合{,}
1)列表
感觉作用跟C++里的数组是差不多的,你可以声明列表,然后调用一大堆的内置函数
修改某个值,修改方法跟C++差不多,添加数据,用append添加
代码:
a=[] #声明一个空的列表
for i in range(0,10):
x=input()
a.append(x) #列表内填入相应的值,直接赋值我试过好像不行
for i in range(0,10):
print(a[i])
a.sort() #调用内置函数,排序
a[2]=1 #直接进行赋值
for i in range(0,10):
print(a[i])
其他使用方法及详解:
空列表:a=[]
函数方法:a.append(3) >>>[3]
a.extend([3,4,5]) >>>[3,3,4,5] 添加一个列表序列
a.insert(1,'hello') >>>[3,'hello',3,4,5]
a.remove(3) >>>['hello',3,4,5] 删除第一个出现的3,没有3则报错
a.pop() >>>['hello',3,4]
a.pop(0) >>>[3,4]
a.index(4) >>>1 返回出现的第一个4的下标
a.count(3) >>>1 列表中元素3的个数
a.sort >>>[3,4] 排序
a.reverse() >>>[4,3] 反序
删除元素的方法
a.remove(3) 通过值删除元素,删除第一个为参数值得元素
a.pop() 通过下标删除元素,默认删除列表最后一个值,带参数则删除下标为参数值的元素
del a[0] 通过下标删除元素,
del a[2:4] 删除a表下标为2,3的元素
del a[:] 删除a列表所有元素
del a 删除列表
列表推导式:
vec = [2,4,6]
[3*x for x in vec if x<6] >>>[6,12] 3*2,3*4
vec2 = [1,2,3]
[x*y for x in vec for y in vec2] >>>[2,4,6,4,8,12,6,12,18]
嵌套列表推导式:
mat = [
[1,2,3],
[4,5,6],
[7,8,9]
]
print ([[row[i] for row in mat] for i in [0,1,2]])
>>>[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
元组与列表的区别就是,元组赋值以后就不能改变
代码:
t = () #空元组
t = (520,1314)
for i in t: #循环输出元组内的元素
print(i)
3)字典
个人理解,字典跟数据结构里的hash是差不多,有异曲同工之妙,
代码:
d = {'jack':'jack@mail.com','tom':'tom@mail.com'} #给定一个字典 'key':'value'
print(d['jack']) #根据key值 调用 value值
d['jim']='jin@mial.com' #进行添加数据
for name,email in d.items(): #循环输出字典中的相应的值
print(name,email)
d = {'Jack':'jack@mail.com','Tom':'Tom@main.com'}
d['Jack'] >>>'jack@mail.com
d['Jim'] = 'Jim@sin.com' >>>{'Jim': 'Jim@sin.com', 'Jack': 'jack@mail.com', 'Tom': 'Tom@main.com'}
del d['Jim'] >>>{'Jack': 'jack@mail.com', 'Tom': 'Tom@main.com'}
list(d.keys()) 将返回一个字典中所有关键字组成的无序列表
sorted(d.keys()) 将返回一个字典中所有关键字组成的排序列表
dict() 构造函数可以直接从key-value对中创建字典
dict([('Tim',123),('Tiny',234)]) >>>{'Tiny': 234, 'Tim': 123}
4)集合
a_set = {1,2,3,4}
a_set.add(5) #添加一个元素
for i in a_set:
print(i)
a_set.discard(3) #删除掉一个元素
for i in a_set:
print(i)