python小技巧
程序员文章站
2022-07-02 13:47:36
平时开发中,一些使用的技巧,记录一下,持续更新………… 示例代码1: 输出结果: 你对此,可能有些疑问,不对呀,看上去第3个输出,应该输出[3]呢,为什么是[1,3]呢???? 这个问题问得很好,这涉及到python对象作为参数时,每次调用并不会创建一个新的对象。就这么简单。 那么你可能又问啦,那为 ......
平时开发中,一些使用的技巧,记录一下,持续更新…………
示例代码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
上一篇: c/c++ 右值引用
下一篇: 11.29