一、序列
s = 'hello'
s2 = 'world'
print(s+s2)
print(s*3)
print('h' in s)
print('e' not in s)
print('len():', len(s))
print('max():', max(s))
print('min():', min(s))
print('s.index():', s.index('l'))
print('s.count():', s.count('l'))
二、列表(可变序列)
字符串(不可变序列)
1.列表操作
print('----------------------列表创建--------------------------')
lst1 = ['hello', 38, 'hi']
lst2 = list('haha') # 只能写一个字符串
lst3 = list(range(1, 11, 2))
print(lst1)
print(lst2)
print(lst3)
print()
print('----------------------基本操作---------------------------')
print(lst1+lst2+lst3)
print(lst1*3)
print(len(lst1))
print(max(lst2))
print(lst1.count('h'))
print(lst1.index(38))
# 删除列表 del lst4
print()
print('-----------------------列表遍历-------------------------')
lst = ['xixi', 'haha', 'hehe', 'yeh']
for item in lst:
print(item)
print()
for i in range(0, len(lst)):
print(i, '--->', lst[i])
print()
for index, item in enumerate(lst):
print(index, item)
# 此时index是序号,不是索引
# 可以手动修改序号的开始值
print()
for index, item in enumerate(lst, start=2):
print(index, item)
# 这里 start 可以省略不写
print()
print('-----------------------列表操作plus-----------------------')
print(lst,id(lst))
lst.append('wowo')
print(lst)
lst.remove('hehe')
print(lst)
print(lst.pop(1))
print(lst)
lst.reverse()
print(lst)
new_lst = lst.copy()
print(lst, id(lst))
print(new_lst, id(new_lst))
lst[1] = 'aoao'
print(lst)
lst.clear()
print(lst, id(lst))
print()
print('--------------------------列表排序---------------------------')
lst5 = [12, 4, 66, 47, 84, 8]
print(lst5)
lst6 = ['dog', 'Cat', 'pink', 'blue']
print(lst6)
print()
# 1.列表对象的sort方法
# 默认升序
lst5.sort()
print(lst5)
lst5.sort(reverse=True)
print(lst5)
lst6.sort()
print(lst6)
lst6.sort(reverse=True)
print(lst6)
# 忽略大小写进行排序
lst6.sort(key=str.lower)
print(lst6)
# 2.内置函数sorted()
new_lst5 = sorted(lst5)
print(new_lst5)
dnew_lst5 = sorted(lst5, reverse=True)
print(dnew_lst5)
print()
print('--------------------------列表生成式-------------------------')
lst8 = [item for item in range(1,11)]
print(lst8)
lst8 = [item*item for item in range(1,11)]
print(lst8)
lst8 =[i for i in range(10) if i%2==0]
print(lst8)
2.二维列表
lst=[
['城市', '环比', '同比'],
['北京', 102, 103],
['上海', 104, 504],
['深圳', 100, 39]
]
print(lst)
for row in lst:
for item in row:
print(item, end='\t')
print()
# 列表生成式生成一个5行6列的二维列表
lst2 = [[j for j in range(6)]for i in range(5)]
print(lst2)
三、元组(不可变序列)
1.创建与删除
# 元组创建
t = ('hello',[1,2,3], 'python')
print(t)
t = tuple('hellohihi') # 只能有一种
print(t)
t = tuple([3, 4, 5, 6, 5])
print(t)
print()
print(4 in t)
print(4 not in t)
print(max(t))
print(min(t))
print(len(t))
print(t.index(4))
print(t.count(5))
print()
#如果元组当中只有一个元素,逗号不能省
a = (10)
b = (10,)
print(a, type(a))
print(b, type(b))
del t # 元组删除
2.访问与遍历
t = ('python', 'hello', 'world')
print(t[0])
t2 = t[0:3:2]
print(t2)
print()
# 遍历
for item in t:
print(item)
print()
for i in range(len(t)):
print(i, t[i])
print()
for index, item in enumerate(t):
print(index, '--->', item)
3.元组生成式
t = (i for i in range(1,4)) #生成器对象
t = tuple(t)
print(t)
for item in t:
print(item)
print()
t2 = (j for j in range(2,5))
print(t2)
print(t2.__next__()) # 取出生成器中的元素
print(t2.__next__())
print(t2.__next__())
t2 = tuple(t2)
print(t2)
四、字典(key无序)
1.创建与删除
# 字典创建
d = {10:'cat', 20:'dog', 30:'fish', 20:'duck'} #会覆盖
print(d)
# zip函数
lst1=[10,20,30,40]
lst2=['cat', 'dog','fish', 'duck','car']
zipobj = zip(lst1,lst2)
print(zipobj) #结果为 <zip object at 0x000001B38D03B740>看不到
'''
print(list(zipobj))
[(10, 'cat'), (20, 'dog'), (30, 'fish'), (40, 'duck')]
可转成列表类型,列表中元素是元组类型
'''
print(dict(zipobj))
# 使用参数创建字典
d = dict(cat=10, dog=20) #左侧为key,右侧为value
print(d)
# 元组(不可变序列)可以作为字典中的key,列表(可变序列)不可以
t=(10,20,30)
print({t:10})
print()
# 字典属于序列
print(max(d))
print(len(d))
del d
2. 访问与遍历
d = {'hi':10, 'hello':20, 'wow':30}
print(d['hello'])
print(d.get('hello'))
# 这两种方法有区别,若key不存在,d[]会报错,d.get()可以指定默认值
print(d.get('xixi'))
print(d.get('xixi','你猜'))
# 字典遍历得到元组
for item in d.items():
print(item)
for key,value in d.items():
print(key,'----->',value)
3.字典相关操作
d = {111:'bill', 222:'lili', 333:'ben'}
print(d)
# 添加
d[444]='monica'
print(d)
print()
# 取 keys
keys = d.keys()
print(keys)
print(list(keys))
print(tuple(keys))
print()
# 取values
values = d.values()
print(values)
print(list(values))
print(tuple(values))
print()
# 取 keys 和 values
items=d.items()
print(items)
print(list(items))
d = dict(items)
print(d)
print()
# pop取
print(d.pop(222))
print(d)
print(d.pop(555,'不存在'))
print(d)
print()
# 随机删除
print(d.popitem())
print(d)
d.clear()
print(d)
4. 字典生成式
import random
d={item: random.randint(1,100) for item in range(4)}
print(d)
print()
lst1 = [111,222,333]
lst2 = ['lili', 'bob', 'nuna']
d={key:value for key,value in zip(lst1,lst2)}
print(d)
五、集合(无序,不重复,可变)
1.集合创建与消除
# 集合的创建与删除
s = {10,20,30,40}
print(s)
# 集合只能储存不可变数据类型
s= set()
print(s)
s = set('helloworld')
print(s)
# 集合无序且不重复
print()
s2 = set([10,20,30])
print(s2)
s3 = set(range(1,10))
print(s3)
print()
print(min(s3))
print(len(s3))
print(3 in s3)
del(s3)
2.集合的操作符
A = {10,20,30,40,50}
B = {30,50,88,76,20}
print('A:', A)
print('B:', B)
print('A&B:', A&B)
print('A|B:', A|B)
print('A-B:', A-B)
print('A^B:', A^B)
3.操作方法
s = {10,20,30}
s.add(100)
print(s)
s.remove(10)
print(s)
for item in s:
print(item)
for index, item in enumerate(s):
print(index, '--->', item)
s.clear()
print(s)
print()
# 生成式
s = {i for i in range(1,10)}
print(s)
s= {i for i in range(1,10) if i%2==1}
print(s)
数据类型