列表
列表[]任意元素类型对象的序列
l1=['AI','abc.cn']
l2=[1,'china',l1,'课程']
-->[1, 'china', ['AI', 'abc.cn'], '课程']
列表切片
l2[0] #第1个元素,[1]第2个,[1:3]左闭右开
[1:]从index为1开始到结尾
[:3]从最左开始到index为2
[ : : 2]从最左开始间隔为2
列表追加
l2.append(['last','elem']) #追加一个元素
--> [1, 'china', ['AI', 'abc.cn'], '课程', ['last', 'elem']]
l2.extend(['new','item']) #追加列表
--> [1, 'china', ['AI', 'abc.cn'], '课程', 'new', 'item']
+l1
#追加列表
列表剔除元素
l2.pop() #返回最尾部元素,并剔除改元素
l2.remove('china') #移除列表中某个值的第一个匹配项,没有返回值
--> [1, ['AI', 'abc.cn'], '课程']
字符串列表的拼接与分割
l3=['I','love','china']
"_".join(13) #用下划线拼接列表元素(需要是字符串)
l4="_".join(l3)
print(l4)
--> I_love_china
a="#".join(l3)
--> I#love#china
a.split("#") # 用#分割 字符串生成列表
--> ['I', 'love', 'china']
列表排序
my_list=[5,1,2,4,3]
my_list.sort() #对my_list排序,直接改变my_list
print(my_list)
--> [1, 2, 3, 4, 5]
new_list=[5,1,2,4,3]
sorted(new_list) #对new_list排序,以返回值返回排序结果,并不改变new_list
print(new_list)
--> [5, 1, 2, 4, 3]
sorted的高级用法
tmp_strs=['aa','BBc','CCdd','zzmm']
sorted(tmp_strs) #按照字母排序(字母序是依据ASCⅡ)
sorted(tmp_strs,reverse=True) #按照字母降序排序
sorted(tmp_strs,key=len) #根据key对元素做处理后的结果对原序列排序
这里的len是函数,返回字符串长度
sorted(tmp_strs,key=str.lower) #根据小写后的结果 字母序排序
sorted(tmp_strs,reverse=True,key=str.lower)
a=
print(a)
-->
['BBc', 'CCdd', 'aa', 'zzmm']
['zzmm', 'aa', 'CCdd', 'BBc']
['aa', 'BBc', 'CCdd', 'zzmm']
['aa', 'BBc', 'CCdd', 'zzmm']
['zzmm', 'CCdd', 'BBc', 'aa']
元组
元组,tuple,只读列表
t1=(1,2,3,4)
type(t1)
--> <class 'tuple'>
#真的只读吗?
t2=(1,2,3,[4,5,6])
t2[0]=11
--> TypeError: 'tuple' object does not support item assignment
#列表可以改
l2=[1,'china','课程']
l2[0]=5
print(l2)-->[5, 'china', '课程']
#元组可以包含不同格式元素
tup=('pc','ch',19,20)
tup1=(50,) #元组中只包含一个元素时,需要在元素后加上逗号
tup[1:] #元组的切片拼接和list一样
集合
set,无序的不重复元素,集合中的对象通常叫key
l2=[1,1,1,2,3,4,5,2,4,234]
s1={1,1,1,2,3,4,5,2,4,234}
a=set(l2)
print(a)
--> {1, 2, 3, 4, 5, 234} #set(s1)结果一样
字典
可变容器模型,可以存储任意类型对象
每个键值 key对应自己的value,用“ :”分割
dict1={'hh':123,'ws':234,'dc':456}
ks=dict1.keys() #取出所有key
vs=dict1.values() #取出所有values
dv=dict1.get('hv',2345) #根据key取value,key不存在返回默认值
dict1['hh']=789 #改变key对应的value
flag='dd' in dict1 #判断是否有某个key
-->
dict_keys(['hh', 'ws', 'dc'])
dict_values([789, 234, 456])
2345
{'hh': 789, 'ws': 234, 'dc': 456}
False
#遍历字典元素
for key in dict1:
print(key,dict1[key])
-->
hh 789
ws 234
dc 456
# 注意字典是一种键值对数据结构,本身无顺序,如果需要顺序,可以用OrderedDict
import collections
od1=collections.OrderedDict()
od1['a']=7
od1['b']=9
od1['v']=6
print(od1)
-->OrderedDict([('a', 7), ('b', 9), ('v', 6)])