python小技巧
python小技巧
2018-09-05 10:18 by _天枢, … 阅读, … 评论, 收藏, 编辑
平时开发中,一些使用的技巧,记录一下,持续更新…………
示例代码1:
def ddd(a,b=[]):
b.append(a)
return b
print(ddd(1))
print(ddd(2,['a','b','c']))
print(ddd(3))
输出结果:
[1]
['a','b','c',2]
[1,3]
你对此,可能有些疑问,不对呀,看上去第3个输出,应该输出[3]呢,为什么是[1,3]呢????
这个问题问得很好,这涉及到python对象作为参数时,每次调用并不会创建一个新的对象。就这么简单。
那么你可能又问啦,那为什么第2个,不输出[1,2]这是因为第二个调用函数的时候,传的参数是一个对象,将原来的对象改变了。
下面我们看一下,参数变化过程,内存id变化,很明显第一次和第三次b参数内存地址是同一个。
这说明函数调用,是不会创建新对象的。除非外在改变,也就是第二个调用
D:\Python27\python.exe D:/untitled1/temp5.py
49089672
[1]
49089480
['a', 'b', 'c', 2]
49089672
[1, 3]
字符串转成列表元素,以及列表转成字符串:
a = 'helloworld'
print(list(a)) #字符串转成,列表
print(''.join(list(a))) #列表转成字符串
输出结果:
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
helloworld