标签:内存 seq 强制转换 com als int ack ted lam
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序列合并,并放在其后面。
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']
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为正序排列
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'
标签:内存 seq 强制转换 com als int ack ted lam
原文地址:https://www.cnblogs.com/bladecheng/p/11260450.html