元祖
(‘a’,‘b’,‘c’) 元祖是不可变的
为什么要用元祖,元祖的不可变性保证了多线程程序中数据的安全性,可以共享使用这个数据,且元祖比列表的占用空间小
列表
[‘a’,‘b’,'c] 列表可变,元素可重复
● 列表的复制 b= a[:] 可以将a列表完全复制给b列表
● 列表颠倒 a[::-1]
a=[1,2,3] a[::-1]是[3,2,1]
- 列表合并
a.extend([3,4])
a=[1,2,3,4]
b=[5,6,2,3]
a.extend(b)
print(a)
-----------
结果[1,2,3,4,5,6,2,3]
- 列表转字符串 ‘’.join(tmplist)
a = ['a','b','c']
print('-'.join(a)) ##打印a-b-c
注意:如果list中有数字,使用join会报错
如
a = ['a','b','c',123]
print('-'.join(a))
TypeError: sequence item 3: expected str instance, int found
修改方法: print('-'.join('%s' %str for str in a))
- 利用range生成list
注意range生成的列表最后一个元素是n-1,即生成的列表返回是[n,m)
list(range(1,11))#返回[1,2,3,4,5,6,7,8,9,10],
集合
- 集合不允许有重复元素
set1 = {1, 2, 3, 3, 3, 2}
print(set1) #打印{1,2,3} - 集合增加元素 set1.update([4,5])
- 弹出首个元素 set1.pop()
- 元素移除 set1.remove(3)
- 增加元素 set1.add(9)
- 两个集合间求差集、交集
set2 = {0,1,2}
print(set1.difference(set2)) #差集
print(set1 &set2) #交集
列表生成式生成列表、集合、字典
相当于按照条件对已有列表、集合、字典去过滤,生成一个新的列表、集合、字典
句型结构 [num for num in numlist if num>2]
#挑选出值大于100的商品信息
prices2 = {
key: value for key, value in prices.items() if value > 100}
print(prices2)
#挑选出列表中大于1的数值
numlist= [2,3,2,2,3,1,0]
numlist2= [num for num in numlist if num>1]
print(numlist2)
#生成数字n以内的数字对应的平方字典
print({
i:i*i for i in range(1,n+1})
使用filter 按条件过滤列表、字典
与列表生成式不同的是,filter可以结合函数过滤对象,可以处理相对复杂的过滤
filter(function,iterable)
function -- 判断函数。
iterable -- 可迭代对象
返回list 中的奇数:
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5,