首页 > 技术文章 > python基础知识

tangqiu 2017-10-18 15:51 原文

list和dict的基础操作:

'''
对于list的排序,python提供了两种方式
list.sort(key,reverse)
sorted(list,key,reverse)
sorted 返回一个对象,可以用作表达式,改变了原来的list生成一个新的list
list.sort()不会返回对象,改变的是原来的list
reverse 默认值是False默认正序排列,如果设为True,为倒序排列
'''
L1=[4,3,1,2]
L1.sort()
print(L1)

L2=['abc','423','we2','123']
L2.sort()
print(L2)

#根据第二个关键字排序
L3=[('a',3),('b',1),('c',2)]
L3.sort(key=lambda x:x[1])
print(L3)
#根据第一个关键字排序
L3.sort(key=lambda x:x[0])
print(L3)


#根据字典的value 排序
L4=[{'name':100},{'name':97},{'name':98}]
L4.sort(key=lambda x:x['name'])
print(L4)

#先根据第二个关键字排序,再根据第一个关键字排序
L5=[('c',1),('b',2),('a',2),('d',0)]
L5.sort(key=lambda x:(x[1],x[0]))
print(L5)

L6=['123','45','678','23']
L6.sort(key=lambda x:x[1])
print(L6)

'''list切片'''
L=[0,1,2,3,4,5,6,7,8,9]

print(L[1:3])
print(L[:3])
print(L[3:])
print(L[3::2])
print(L[::-1])


'''字符串排序'''
str='string'
l=list(str)
print(l)
l.sort(reverse=True)
str1=''.join(l)
print(str1)


'''dict相关知识,dict 本身是无序的,可以根据keys、values、items排序'''
list1=['nana','tang','long']
list2=[98,100,96]
dict1=dict(zip(list1, list2))
print(dict1)
print(list(dict1.keys()))
print(list(dict1.values()))
items=list(dict1.items())
print(items)
items.sort(key=lambda x:x[0])
print(items)
items.sort(key=lambda x:x[1])
print(items)
dict2=dict(items)
print(dict2)

 

结果:

[1, 2, 3, 4]
['123', '423', 'abc', 'we2']
[('b', 1), ('c', 2), ('a', 3)]
[('a', 3), ('b', 1), ('c', 2)]
[{'name': 97}, {'name': 98}, {'name': 100}]
[('d', 0), ('c', 1), ('a', 2), ('b', 2)]
['123', '23', '45', '678']
[1, 2]
[0, 1, 2]
[3, 4, 5, 6, 7, 8, 9]
[3, 5, 7, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
['s', 't', 'r', 'i', 'n', 'g']
tsrnig
{'nana': 98, 'tang': 100, 'long': 96}
['nana', 'tang', 'long']
[98, 100, 96]
[('nana', 98), ('tang', 100), ('long', 96)]
[('long', 96), ('nana', 98), ('tang', 100)]
[('long', 96), ('nana', 98), ('tang', 100)]
{'long': 96, 'nana': 98, 'tang': 100}

 

推荐阅读