python基础知识4(数据结构)

列表
列表[]任意元素类型对象的序列

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)])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值