"""
切片
序列[start:end:step]
开始 结束 步长,默认1
索引
max() 按ascii索引最大值
min() 最小值
序列.index(对象) 对象在序列中第一次出现的位置
序列.count(对象) 对象在序列中出现的次数
+ 连接
*n 拷贝n次
in 子集
not in 非子集
len() 长度
排序
sorted方法,生成新列表 sorted(iterable,key=None,reverse=False)
排序对象
列表是可变序列
列表名=[element1,element2,...,elementn]
=list(序列)
=[expression for item in range]
=[expression for item in range if condition]
del 列表名 删除列表
遍历 输出idex和item
for index,item in enumerate(lst,start=n) n=first_index
for遍历
for索引遍历
list.append(x) 在list最后插入元素x
list.insert(index,x) 在list的index位置加元素x
list.clear() 清除lisy中所有元素
list.pop(index) 取出list的index位置元素,并从列表中将其删除
list.remove(x) 删除list中出现的第一个x
list.reverse(x) 反转list中元素
list.copy() 拷贝list中所有元素,并生成一个新列表
按索引修改元素
列表排序
sort方法,不生成新列表 list.sort(key=None,reverse=False)
排序规则 排序方式,默认升序
元组是不可变序列
元组名=(element1,element2,...,elementn)
=tuple(序列),类型转换为元组
=tuple(生成器)
del 元组名 删除元组
生成器名=(expression for item in range if condition)
生成器.__next__() 元组生成式指针
字典是可变序列,表示索引键(唯一,要求不可变)与对应值构成的成对关系,即值与地址
注:字典中的key是无序的
字典名={key1:value1,key2:value2,...}
=dict(key1=value1,key2=value2,...}
=dict(序列)
=dict(zip(list1,list2))
字典生成式 字典名={key:value for item in range}
={key:value for key,value in zip(list1,list2)}
字典名[new_key]=value 赋值添加字典
字典1|字典2 字典合并,key相同时,字典2.value覆盖字典1.value
del 字典名 删除字典
字典名[key]或 字典名.get(key) 访问字典中的元素
注:如果key不存在,字典名[key]报错,字典名.get(key)可指定默认值:字典名.get(key,"默认值,默认为None")
遍历字典元素 for element in 字典名.items():
for key,value in 字典名.items():
字典名.keys() 获取所有key
list(字典名.keys()) 转列表,tuple(字典名.keys()) 转元组
字典名.values() 获取所有value
list(字典名.values()) 转列表,tuple(字典名.values()) 转元组
字典名.items() 获取key—value对
list(字典名.items()) 转列表,tuple(字典名.items()) 转元组
key存在获取对应value,同时删除key-value对,否则获取给定值
字典名.pop(key,"给定值“) 随机取出一key—value对(元组类型),同时删除该key-value对 字典名.popitem()
字典名.clear() 清空所有key-value对
集合是可变的,是无序不重复元素序列,只能存储不可变数据类型,同数学
集合名={element1,element2,...,elementn}
=set(可迭代对象)
集合生成式 集合名={item for item in range}
遍历集合 for item i 集合名
for index,item in enumerate(集合名,start=n)
集合名.add(x) 添加x到集合中,如果x不在集合中
集合名.remove(x) 删除集合中的x,如果x不在集合中则报错
集合名.clear(x) 清除所有元素
del 集合名 删除集合
set1&set2 交集
set1|set2 并集
set1-set2 差集
set1^set2 补集
"""
import random#随机库
string0="hello world"
string1=string0[0:5:2]
print(string1)
string2=string0[-1:-12:-1]
print(string2)
print(max(string0),ord(max(string0)))
print(min(string0),ord(min(string0)))
print(string0.index('o'))
print(string0.count('o'))
list0=['h','e','l','l','o']
list1=list('world')
print(list0,type(list0),'\t',list1,type(list1))
list3=list(range(0,10))
print(list3)
list4=[item for item in range(0,10)]
print(list4)
list5=[item*item for item in range(0,10)]
print(list5)
list6=[item for item in range(0,10) if item%2==0]
print(list6)
list7=['hello', 'world', 'by', 'python']
for index,item in enumerate(list7,start=1):
print(index,item)
for item in list7:
print(item)
for i in range(0, len(list7)):
print(i, list7[i])
list7.append(list0)#列表嵌套,二维列表
print(list7, id(list7))
list7.insert(2, list1)
print(list7, id(list7))
list7.remove(list1)
print(list7, id(list7))
print(list7.pop(4), id(list7))#先取出元素
print(list7, id(list7))#再去除
list7.reverse()
print(list7, id(list7))
new_list=list7.copy()
print(new_list, id(new_list),'\t', list7, id(list7))
list7.clear()
print(list7, id(list7))
new_list[0]='pycharm'
print(new_list,id(new_list))
list8=[random.randint(1, 100) for item in range(0,10)]
print(list8)
list8.sort()
print(list8)
list8.sort(reverse=True)
print(list8)
list8_sorted=sorted(list8)
print(list8_sorted)
list8_sorted=sorted(list8, reverse=True)
print(list8_sorted)
list9=['hello', 'world', 'python', 'Hello', 'World', 'Python']#按ascii码表排序
list9.sort()
print(list9)
list9.sort(reverse=True)
print(list9)
list9.sort(key=str.lower)#忽略大小写(转换成小写)
print(list9)
list9_sorted=sorted(list9)
print(list9_sorted)
list9_sorted=sorted(list9, reverse=True)
print(list9_sorted)
list9_sorted=sorted(list9, key=str.lower)
print(list9_sorted)
#二维列表
list10=[
['h','e','l','l','o'],
['w','o','r','l','d'],
['p','y','t','h','o','n']
]
list11=[]
list11.append(list0)
list11.append(list1)
list11.append(['p','y','t','h','o','n'])
print(str(list10)+'\n'+str(list11))#消去‘\n'带来的空格
for row in list10:
for item in row:
print(item,end='\t')
print()
list12=[[j for j in range(0,5)]for i in range(0,4)]
print(list12)
tuple0=('hello','world',[1,2,3])
print(tuple0,type(tuple0))
tuple1=(1,)#当元组只有一个元素的时候,需要在元素后多加一个“,”才能代表创建的是元组
print(tuple1,type(tuple1),'\t',(1),type((1)))
tuple2=tuple('hello world')
print(tuple2)
#元组生成器
t3=(i*i for i in range(0,10) if i%2==0)
print(t3,type(t3))#生成式类型
tuple3=tuple(t3)
print(tuple3)
t4=(i for i in range(0,3))
print(t4.__next__())
print(t4.__next__())
tuple4=tuple(t4)
print(tuple4)
dictionary0={0:'hello',1:'world',2:'by',3:'pycharm',3:'python'}#键相同,值覆盖
print(dictionary0,type(dictionary0))
d1=zip([0,1,2,3],['hello','world','python'])#压缩类型
print(d1,type(d1))
#print(list(d1),type(list(d1)))#映射到列表查看
#print(tuple(d1))#映射到元组
dictionary1=dict(d1)#转字典类型
print(dictionary1)
dictionary2=dict(hello=0,world=1,by=2,python=3)
print(dictionary2)
dictionary3={item:random.randint(1,100) for item in range(0,4)}
print(dictionary3)
dictionary4={key:value for key,value in zip([0,1,2,3],['hello','world','python'])}
print(dictionary4)
dictionary0[4]='pycharm'
print(dictionary0)
merged_dictionary=dictionary0|dictionary3
print(merged_dictionary)
print(dictionary0[0])
print(dictionary0.get(0))
print(dictionary0.get(5,"不存在"))
for item in dictionary0.items():
print(item)
for key,value in dictionary0.items():
print(key,value)
print(dictionary0.keys())
print(list(dictionary0.keys()),tuple(dictionary0.keys()))#转列表,转元组
print(dictionary0.values())
print(dictionary0.items())
print(list(dictionary0.items()),tuple(dictionary0.items()))
print(dict(list(dictionary0.items())),dict(tuple(dictionary0.items())))#转回字典
print(dictionary0.pop(4))#先取出
print(dictionary0)#再删除
print(dictionary0.pop(4,"不存在"))
print(dictionary0.popitem())#先取出
print(dictionary0)#再删除
dictionary0.clear()
print(dictionary0)
set0={'hello','world','by','python'}
print(set0,type(set0))
set1=set()
print(set1,type(set1),type({}))
set1=set('hello world')#o不重复
print(set1)
set1=set(item*2 for item in range(0,10))
print(set1)
set1={item*2 for item in range(0,10)}
print(set1)
for item in set0:
print(item)
for index,item in enumerate(set0,start=1):
print(index,item)
set0.add(1)
print(set0)
set0.remove(1)
print(set0)
set0.clear()
print(set0)
print(set1&set(item**2 for item in range(0,10)))
print(set1|set(item**2 for item in range(0,10)))
print(set1-set(item**2 for item in range(0,10)))
print(set1^set(item**2 for item in range(0,10)))
#组合数据赋值是地址赋值,不创建新的组合数据,两个变量名指向同一个对象
list_a=list(range(0,10))
list_b=list_a
print(list_a,list_b)
list_b[0]=1
print(list_a,list_b)
dictionary_a={key:value for key,value in zip(list(range(0,10)),list(range(0,10)))}
dictionary_b=dictionary_a
print(dictionary_a,dictionary_b)
dictionary_b[0]=1
print(dictionary_a,dictionary_b)
set_a=set(range(0,10))
set_b=set_a
print(set_a,set_b)
set_b.remove(0)
set_b.add(10)
print(set_a,set_b)
运行结果