码迷,mamicode.com
首页 > 其他好文 > 详细

list str dic 内置方法

时间:2019-07-28 20:13:41      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:内存   seq   强制转换   com   als   int   ack   ted   lam   

1.列表的 append 和extend的区别

list.append(object) 向列表中添加一个对象object
list.extend(sequence) 把一个序列seq的内容添加到列表中


music_media = ['compact disc', '8-track tape', 'long playing record']
new_media = ['DVD Audio disc', 'Super Audio CD']
music_media.append(new_media)
print music_media
>>>['compact disc', '8-track tape', 'long playing record', ['DVD Audio disc', 'Super Audio CD']]

使用append的时候,是将new_media看作一个对象,整体打包添加到music_media对象中。


music_media = ['compact disc', '8-track tape', 'long playing record']
new_media = ['DVD Audio disc', 'Super Audio CD']
music_media.extend(new_media)
print music_media
>>>['compact disc', '8-track tape', 'long playing record', 'DVD Audio disc', 'Super Audio CD']

使用extend的时候,是将new_media看作一个序列,将这个序列和music_media序列合并,并放在其后面。

2. 字典的排序用法

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

#第一种,按K排序
print(sorted(d.keys()))  #['Bob', 'Michael', 'Tracy']

#第二种,按V排序
print(sorted(d.values())) #[75, 85, 95]

#第三种,按值排序,然后按顺序输出

#写法一
print(sorted(d, key=lambda x: d[x]))  #['Bob', 'Tracy', 'Michael']

#写法二
def age(x):  #函数名随便定义
    return d[x]  #字典的K返回
print(sorted(d,key=age))  #['Bob', 'Tracy', 'Michael']

3.sort和sorted的区别

l1=[1,3,2,4,7,5,9]

#第一种情况

l1.sort() #l1.sort(reverse=True) true 为从大到小排列 False 为从小到大排序
print(l1)  #[1, 2, 3, 4, 5, 7, 9] 

#第二种情况

l2=l1 #把l1赋值给l2

print(id(l1)) #1903199478408
print(id(l2)) #1903199478408

print(l2)  #此时l2 =[1, 3, 2, 4, 7, 5, 9]
l1.sort()  #l1进行排序
print(l1)  #l1为 [1, 2, 3, 4, 5, 7, 9]
print(l2)  #l2为 [1, 2, 3, 4, 5, 7, 9] 原因是指向的是同一内存地址

#结论 想把L1赋值给L2 并且任意一个列表发生变化不影响另一个
l2=l1[:]  #写成这样既可  
print(id(l1)) #1187644465800
print(id(l2)) #1187644465864

#第三种情况
l1 = [1, 3, 2, 4, 7, 5, 9]
l2 = sorted(l1)

print(id(l1)) #1898623820424
print(id(l2)) #1898623820488

print(l2)  #[1, 2, 3, 4, 5, 7, 9]
print(l1)  #[1, 3, 2, 4, 7, 5, 9]

#--------------------------------------------------------

sort方法还有两个可选参数:key和reverse

1、key在使用时必须提供一个排序过程总调用的函数:

x = ['mmm', 'mm', 'mm', 'm' ]
x.sort(key = len)
print (x) # ['m', 'mm', 'mm', 'mmm']

2、reverse实现降序排序,需要提供一个布尔值:

y = [3, 2, 8 ,0 , 1]
y.sort(reverse = True)
print (y) #[8, 3, 2, 1, 0]

True为倒序排列,False为正序排列

4.str和list 互转

s = 'abcd'

#第一步 将字符串转成列表
li = list(s) #先强制转换成列表
print(li)  #['a', 'b', 'c', 'd']

#第二步 将列表再转会字符串
s1 = ''.join(li)
print(s1)  #'abcd'

#笨方法 for循环拼接
s1 = ''
for i in li:
    s1 += i
print(s1) #'abcd'

list str dic 内置方法

标签:内存   seq   强制转换   com   als   int   ack   ted   lam   

原文地址:https://www.cnblogs.com/bladecheng/p/11260450.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!